HTML5中的多个相同的元素id -这应该如何与脚本一起工作?

Multiple identical element IDs in HTML5 - how is this supposed to work with scripts?

本文关键字:一起 工作 脚本 HTML5 id 元素      更新时间:2023-09-26

我已经回答了数百个jQuery问题。新手常犯的错误之一是使用多个元素id,像这样:

<div id="a">....</div>
<div id="a">....</div>

然后他们会这样做,并问为什么它不像预期的那样工作:

$('#a').hide();

我通常这样回答:

IDs must be unique

…有人总是这样回应:

但不是在HTML5!

问题:所以如果在HTML5中允许多个相同的id,脚本应该如何处理它们,或者我们应该仍然避免使用多个相同的元素id ?

引用自HTML5

id属性指定其元素的唯一标识符(id)。(DOMCORE)

该值在该元素的home subtree中的所有id中必须唯一并且必须包含至少一个字符。值必须不是不能包含空格

我想在一般意义上,ID可能是一个用词不当。但是,它应该在子树上下文中有效。

home子树是:

节点的home子树是在该节点的根上扎根的子树元素。当一个节点位于Document中时,它的主子树是文档的树

我建议避免使用多个相同的id。Jquery返回一个基于选择器的元素数组,该选择器将隐藏该约定的误用

当使用id作为jquery选择器时,只返回1个元素:jquery Docs

我将继续保持我的id唯一。它只是使开发更容易。