这是jquery的有效HTML吗?



我有以下HTML:

div#main-content div#right-col div#post-show div#post-img div#post-img-large{
}
div#main-content div#right-col div#post-show div#post-img div#post-img-large 
   img#post-img-large{
}

如您所见,我对div和img使用了相同的id。

允许吗?我知道它工作得很好,但是如果我引用id post-img-large, jQuery会感到困惑吗?

id不应该用于任何给定页面的多个元素。它们用于唯一地标识元素。

现在,在您的特定示例中,如果您正在使用jQuery,总有方法通过使用更多信息(div#ID, img#ID)限定您的选择器来选择您想要的元素- jQuery不会混淆,但您应该坚持标准,不要重用ID。

来自W3c:http://www.w3.org/TR/html4/struct/global.html (html4,但它仍然适用)

7.5.2 Element identifiers: the id and class attributes
Attribute definitions
id = name [CS]
This attribute assigns a name to an element. This name must be unique in a document.
class = cdata-list [CS]
This attribute assigns a class name or set of class names to an element. Any number of elements may be assigned the same class name or names. Multiple class names must be separated by white space characters.

从以前的经验来看:

对于id选择器,jQuery使用JavaScript函数document.getElementById(),这是非常有效的。当另一个选择器附加到id选择器,如h2#pageTitle, jQuery在将元素标识为元素之前执行附加检查比赛。

每个id值只能在文档中使用一次。如果超过一个元素被分配了相同的ID,查询使用该ID将只选择DOM中第一个匹配的元素。这种行为然而,不应该依赖;一个以上的文档使用相同ID的元素无效。

来源:http://api.jquery.com/id-selector/

检查http://www.w3.org

中的每个代码

这不是一个有效的html, id必须是唯一的

是的,jquery可能不会像预期的那样工作,因为重复的id。事实上,就在几天前,我在SO上看到了一个功能不完整的问题。

最新更新