ID必须在整个页面中是唯一的吗?

时间:2012-02-26 16:09:54

标签: jquery html css

我正在使用jQuery,我只是想知道,ID在整个页面中是否必须始终是唯一的?我知道,班级可以重复多次,ID怎么样?

11 个答案:

答案 0 :(得分:40)

是的,它必须是唯一的。

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)。该   value必须在元素的主子树中的所有ID中唯一   并且必须至少包含一个字符。该值不得包含   任何空格字符。

答案 1 :(得分:8)

来自mdn enter image description here

https://developer.mozilla.org/en/DOM/element.id

所以我想最好是......

答案 2 :(得分:3)

浏览器过去对此很宽松(很多年前,当css很年轻时)并且允许ID不止一次使用。他们变得更加严格。

但是,是的ID是唯一的,只能使用一次。

如果您需要多次使用css格式,请使用CLASS。

答案 3 :(得分:2)

2018年1月,这里是Youtube HTML,你可以看到 id =“button” id =“info”是重复的。

enter image description here

答案 4 :(得分:2)

从技术上讲,HTML5标准ID必须在页面上唯一 - https://developer.mozilla.org/en/DOM/element.id

但是我已经在非常模块化的网站上工作,这完全被忽略了,而且它有效。它是有道理的 - 最令人惊讶的部分。

我们称之为“组件化”

例如,您的页面上可能有一个组件,这是一种小部件。它里面有自己独特的ID,例如“ok-button”

一旦页面上有许多这些小部件,您在技术上就会有无效的HTML。但是组件化你的小部件是完全合理的,这样他们每个人都可以在内部引用他们自己的ok按钮,例如,如果使用jquery从它自己的根搜索它可能是:$widgetRoot.find("#ok-button")

这对我们有用,虽然技术上不应该使用ID,一旦它们不是唯一的。

如上所述,即便是YouTube,也不是叛徒。

答案 5 :(得分:1)

是的,ID是唯一的。上课不是。

答案 6 :(得分:1)

ID必须始终是唯一的。

每个人都有一个唯一标识号(例如社会安全号码),社交类中有很多人

答案 7 :(得分:1)

这基本上就是身份证的重点。 :) ID是特定的,每页只能使用一次。可以高兴地使用课程。

答案 8 :(得分:1)

使用Javascript,您只能使用ID引用一个元素。 document.getElementById和jQuery的$选择器将仅返回第一个匹配的元素。因此,在多个元素上使用相同的ID是没有意义的。

答案 9 :(得分:0)

https://softwareengineering.stackexchange.com/questions/127178/two-html-elements-with-same-id-attribute-how-bad-is-it-really对同一个问题有很好的答案。

One tidbit not mentioned above如果有几个相同的id s同一页(即使违反了标准,也会发生这种情况):

  

如果你必须解决这个问题(那很难过),你可以使用$("*#foo")来说服jQuery使用getElementsByTagName并返回所有匹配元素的列表。

答案 10 :(得分:0)

  

ID在整个页面中必须唯一吗??

否。

由于the HTML Living Standard 2019年12月6日,明确指出:

  

可以在所有HTML元素上指定classidslot属性。 ……。   在HTML元素上指定时,id属性值在元素的 中的所有ID中必须唯一,并且必须至少包含一个字符。

页面可能有几个 DOM树 。例如,当您将Element.attachShadow()附加(shadow DOM tree)到元素上时,就会这样做。

A document tree and its underlying shadow trees


TL; DR

  

ID在整个页面中必须唯一吗??

否。

  

ID在DOM树中必须唯一吗??

是的