#1 楼
是的,它必须是唯一的。HTML4:
https://www.w3.org/TR/html4/struct/global.html#h-7.5.2
7.5.2节:
id = name [CS]
此属性为元素分配名称。此名称在文档中必须是唯一的。
HTML5:
https://www.w3.org/TR/html5/dom.html#element -attrdef-global-id
id属性指定其元素的唯一标识符(ID)。
值在元素的主子树的所有ID中必须唯一。
至少包含一个字符。该值不能包含
任何空格字符。
#2 楼
来自mdn https://developer.mozilla.org/en/DOM/element.id所以我想最好是...
#3 楼
ID是否在整个页面中必须唯一?
号。
因为2019年12月6日的HTML生活标准明确状态:
class
,id
和slot
属性可以在所有HTML元素上指定。 ……。在HTML元素上指定时,
id
属性值在元素树中的所有ID中必须唯一,并且必须至少包含一个字符。和一个页面可能有几个DOM树。例如,当您将()影子DOM树附加(
Element.attachShadow()
)到元素上时,它就会执行此操作。TL; DR
ID是否必须在整个页面中唯一?
编号
ID在DOM树中必须唯一吗?
是的。
#4 楼
2018年1月,这是Youtube HTML,您可以看到id =“ button” id =“ info”已重复。#5 楼
从技术上讲,按照HTML5标准,该ID在页面上必须是唯一的-https://developer.mozilla.org/en/DOM/element.id但是我在非常模块化的网站上工作,被完全忽略并且有效。这很有意义-最令人惊讶的部分。
我们称其为“组件化”
例如,您的页面上可能有一个组件,它是某种小部件。 。它内部有带有自己唯一ID的内容,例如“确定按钮”
一旦页面上有许多这样的小部件,从技术上来说您就具有无效的HTML。但是将组件进行组件化是非常合理的,以便它们在内部各自引用自己的确定按钮,例如,如果使用jquery从其根目录进行搜索,则可能是:
$widgetRoot.find("#ok-button")
这对我们有用从技术上讲,一旦ID不唯一,就完全不应该使用ID。
如上所述,即使YouTube也会使用ID,所以并不是那么容易背叛。
#6 楼
浏览器过去对此宽大(许多年前是CSS刚成立时),并且允许多次使用ID。它们变得更加严格。但是,是的,ID是唯一的,并且只能使用一次。
如果需要多次使用CSS格式,请使用CLASS。
#7 楼
基本上,这就是ID的重点。 :) ID是特定的,每页只能使用一次。可以根据需要使用类。#8 楼
ID必须始终是唯一的。每个人都有唯一的身份证号码(例如社会安全号码),并且社会阶层中有很多人
#9 楼
使用Javascript,您只能使用ID引用一个元素。document.getElementById
和jQuery的$
选择器将仅返回第一个匹配的元素。因此,在多个元素上使用相同的ID毫无意义。#10 楼
是的,ID是唯一的。课不是。#11 楼
在https://softwareengineering.stackexchange.com/questions/127178/two-html-elements-with-same-id-attribute-how-bad-is-it-really中,对于同一问题有很好的答案。上面没有提到的一个提示是,如果有多个相同的
id
出现在同一页面上(即使它违反了标准,也会发生这种情况):要解决此问题(很可惜),可以使用
$("*#foo")
,它将说服jQuery使用getElementsByTagName
并返回所有匹配元素的列表。
评论
id属性通常仅使用一次,因为ID是唯一的如果可以,则不能覆盖ID的定义。
为什么每个人都不赞成这个问题?我可以说这很简单,但这并不是拒绝投票的原因,您应该继续前进...
@nodrog人们在这里不知道downvote的含义...。我Upvoted。