使用带有数字的ID的querySelector

据我了解,HTML5规范使您可以使用ID这样的数字。

<div id="1"></div>

<div id="2"></div>

我可以使用,getElementById但不能使用querySelector。如果尝试执行以下操作, 在控制台中收到

document.querySelector("#1")

我只是很好奇,为什么querySelector当HTML5规范说数字有效时,将数字用作ID 无效。我尝试了多种浏览器。

回答:

它是有效的,但是需要一些特殊的处理。从这里:

前导数字

如果标识符的第一个字符是数字,则需要根据其Unicode代码点对其进行转义。例如,字符1的代码点为U+0031,因此可以将其转义为\000031或\ 31。

基本上,要转义任何数字字符,只需在其前面加上\ 3并附加一个空格字符()。是的Unicode!

因此,您的代码最终将显示为(CSS首先,JS第二):

#\31  {

background: hotpink;

}

document.getElementById('1');

document.querySelector('#\\31 ');

以上是 使用带有数字的ID的querySelector 的全部内容, 来源链接: utcz.com/qa/430393.html

回到顶部