ID的长度在jQuery中是否重要?

时间:2016-12-22 14:47:36

标签: javascript jquery html

通过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

我不明白这种行为,有人在乎解释?

2 个答案:

答案 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状态一样。