通过id获取元素我遇到了一些麻烦。我的HTML看起来像这样:
<div id="F6fsCKVqdAXAXUlRAAAC0zwj8s9QQUKp0riVAAAD"></div>
<li class="active" id="F6fsCKVqdAXAXUlRAAAC0zwj8s9QQUKp0riVAAAD"></li>
当我使用这样的ID时,我只获得了li元素。 Picture of result.
但是,当我尝试使用另一个更短的内容时 - 就像这样:
<div id="room1"></div>
<li class="active" id="room1"></li>
然后我得到两个元素。 Picture of result
我不明白这种行为,有人在乎解释?答案 0 :(得分:3)
是的,因为它必须至少有一个字符。没有Max。
来自W3C:
3.2.3.1 id属性
id属性指定其元素的唯一标识符(ID)。该 value必须在元素的home子树中的所有ID中唯一 并且必须至少包含一个字符。该值不得包含 任何空格字符。
元素的唯一标识符可用于各种目的, 最值得注意的是使用链接到文档的特定部分的方法 片段标识符,作为在编写脚本时定位元素的方法, 并且作为一种从CSS设置特定元素的方式。
如果值不是空字符串,则用户代理必须关联 具有给定值的元素(确切地说,包括任何空格字符) 为了在元素的主子树中进行ID匹配 (例如,对于CSS中的选择器或者中的getElementById()方法 DOM)。
标识符是不透明的字符串。特殊含义不应该是 派生自id属性的值。
此规范不排除具有多个ID的元素,如果 其他机制(例如DOM Core方法)可以在a中设置元素的ID 与id属性不冲突的方式。
id IDL属性必须反映id内容属性。
答案 1 :(得分:1)
ID,如名称所示,必须是HTML文档中唯一的。
id全局属性定义唯一标识符(ID),该标识符在整个文档中必须是唯一的
另一种方法是使用不同的ID来表示您的li
元素或类,就像您用来表示active
状态一样。