我正在使用jQuery,我只是想知道,ID是否在整个页面中必须始终是唯一的?我知道,您可以根据需要将课程重复多次,ID呢?
我正在使用jQuery,我只是想知道,ID是否在整个页面中必须始终是唯一的?我知道,您可以根据需要将课程重复多次,ID呢?
Answers:
是的,它必须是唯一的。
HTML4:
https://www.w3.org/TR/html4/struct/global.html#h-7.5.2
第7.5.2节:
id =名称[CS]此属性为元素分配名称。此名称在文档中必须唯一。
HTML5:
https://www.w3.org/TR/html5/dom.html#element-attrdef-global-id
id属性指定其元素的唯一标识符(ID)。该值在元素的主子树中的所有ID中必须是唯一的,并且必须包含至少一个字符。该值不得包含任何空格字符。
来自mdn
https://developer.mozilla.org/en/DOM/element.id
所以我想最好是...
ID在整个页面中必须唯一吗?
因为2019年12月6日的HTML生活标准 明确指出:
的
class
,id
和slot
属性可以在所有的HTML元素指定。……。在HTML元素上指定时,id
属性值在元素树的所有ID中必须是唯一的,并且必须至少包含一个字符。
和一个页面可以有多个DOM树。例如,当您将(Element.attachShadow()
)影子DOM树附加到元素上时,它就会执行此操作。
ID在整个页面中必须唯一吗?
没有。
ID在DOM树中是否必须唯一?
是。
从技术上讲,按照HTML5标准,该ID在页面上必须是唯一的-https: //developer.mozilla.org/en/DOM/element.id
但是我在极端模块化的网站上工作,在该网站上它被完全忽略并且可以正常工作。这是有道理的-最令人惊讶的部分。
我们称之为“组件化”
例如,您的页面上可能有一个组件,它是某种小部件。它内部具有自己的唯一ID,例如“确定按钮”
一旦页面上有许多这些小部件,从技术上来讲,您将具有无效的HTML。但是将组件进行组件化是非常有意义的,以便它们在内部各自引用自己的ok按钮,例如,如果使用jquery从其自己的根目录进行搜索,则可能是:$widgetRoot.find("#ok-button")
这对我们有用,尽管从技术上讲,一旦ID不是唯一的,就完全不应该使用ID。
如上所述,即使YouTube也是这样做的,所以它并不是那么叛逆。
ID必须始终是唯一的。
每个人都有一个唯一的身份证号码(例如社会安全号码),并且社会阶层中有很多人
是的,ID是唯一的。类不是。
对于同一问题,有很好的答案,网址为/software/127178/two-html-elements-with-same-id-attribute-how-bad-is-it-really。
上面没有提到的一个提示是,如果有多个相同的id
s出现在同一页面上(即使它违反了标准,也会发生这种情况):
如果必须解决此问题(这很可悲),则可以使用
$("*#foo")
它将说服jQuery使用getElementsByTagName
并返回所有匹配元素的列表。