使用带有数字的ID的querySelector
从我所了解的HTML5规范,你可以使用像这样的数字的ID。
<div id="1"></div> <div id="2"></div>
我可以访问这些罚款使用getElementById
但不是与querySelector
。 如果我尝试做以下操作,我得到控制台中的SyntaxError:DOMexception12 。
document.querySelector("#1")
我只是好奇,为什么使用数字作为ID不工作querySelector
当HTML5规范说这些是有效的。 我尝试了多个浏览器。
这是有效的,但需要一些特殊的处理。 从这里: http : //mathiasbynens.be/notes/css-escapes
领先的数字
如果标识符的第一个字符是数字,则需要根据其Unicode代码点将其转义。 例如,字符1的代码点是U + 0031,所以您可以将它作为\ 000031或\ 31转义。
基本上,要转义任何数字字符,只需在前面添加\ 3并添加一个空格字符()即可。 Yay Unicode!
所以你的代码最终会成为(CSS第一,JS第二):
#\31 { background: hotpink; } document.getElementById('1'); document.querySelector('#\\31 ');
因为虽然它们在HTML5规范中有效,但它们在CSS中无效,这就是“查询select器 ”的含义。
相反,你将不得不这样做: document.querySelector("[id='1']")
,这是非常漫长的考虑你可以给它一个有意义的 ID像message1
或什么;)