小编典典

使用带有数字的ID的querySelector

javascript

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

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

我可以使用,getElementById但不能使用querySelector。如果尝试执行以下操作, 则会 在控制台中收到
SyntaxError:DOM异常12

document.querySelector("#1")

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


阅读 959

收藏
2020-05-01

共1个答案

小编典典

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

前导数字

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

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

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

#\31  {
    background: hotpink;
}

document.getElementById('1');
document.querySelector('#\\31 ');
2020-05-01