:1
是完全有效的id
HTML5 中的属性:
The id http://www.w3.org/TR/html5/dom.html#the-id-attribute属性指定其元素的唯一标识符 http://www.w3.org/TR/html5/infrastructure.html#concept-id
(ID).
该值在所有值中必须是唯一的IDs http://www.w3.org/TR/html5/infrastructure.html#concept-id在元素的主子树 http://www.w3.org/TR/html5/infrastructure.html#home-subtree并且必须至少包含一个字符。价值
不得包含任何空格字符 http://www.w3.org/TR/html5/infrastructure.html#space-character.
然而,它可能需要一些转义。
CSS - CSS ID 选择器
在 CSS 中,要通过 ID 获取元素,请使用ID选择器 http://www.w3.org/TR/CSS21/selector.html#id-selectors:
文档语言的 ID 属性允许作者分配一个
文档树中一个元素实例的标识符。 CSS ID
选择器根据其标识符来匹配元素实例。 CSS ID
选择器包含一个“#”,紧随其后的是 ID 值,其中
必须是一个标识符。
然而,:1
不是有效的标识符:
In CSS, 身份标识 http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier(包括元素名称、类和 ID)选择器 http://www.w3.org/TR/CSS21/selector.html) 只能包含字符 [a-zA-Z0-9] 和 ISO 10646
字符 U+00A0 及更高字符,加上连字符 (-) 和下划线
(_);它们不能以数字、两个连字符或后跟一个连字符开头
按一位数字。标识符还可以包含转义字符和任何
ISO 10646 字符作为数字代码(请参阅下一项)。例如,
标识符“黑白?”可以写成“B\&W\?”或“B\26 W\3F”。
因此,您不能使用选择器#:1
,但你可以将其转义为#\:1
.
#\:1 {
/* CSS styles */
}
JavaScript - CSS ID 选择器
在 JavaScript 中,您可以使用document.querySelector https://developer.mozilla.org/en-US/docs/Web/API/Document.querySelector获取与 CSS 选择器匹配的(第一个)元素。这同样适用于 jQuery。
您可以使用CSS.escape https://developer.mozilla.org/en-US/docs/Web/API/CSS.escape[警告-实验技术]对字符串进行转义,使其成为有效的CSS标识符:
document.querySelector("#" + CSS.escape(":1"));
或者,您可以使用#\:1
直接地。但是,请注意,在 JavaScript 字符串文字中,字符\
转义字符,所以"#\:1"
变成"#:1"
。因此,你必须逃离\
和另外一个\
:
document.querySelector("#\\:1");
请注意,即使您使用CSS.escape
,如果 ID 包含\
或引号,您也必须在字符串文字中转义它们。
JavaScript-ID
但 JavaScript 也有document.getElementById https://developer.mozilla.org/en-US/docs/Web/API/document.getElementById,比 CSS 选择器更快、更简单的方法。
它直接通过 ID 获取元素,而不是 CSS 转义版本:
document.getElementById(":1");
请注意,如果 ID 包含\
或引号,您必须在字符串文字中转义它们。