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

sr4lhrrt  于 2021-06-24  发布在  Mysql
关注(0)|答案(11)|浏览(446)

我正在使用jquery,我只是想知道,id在整个页面中是否总是唯一的?课堂,我知道,你想重复多少遍就重复多少遍,id呢?

bq9c1y66

bq9c1y661#

是的,一定是独一无二的。
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-属性定义全局id
id属性指定其元素的唯一标识符(id)。该值在元素的主子树中的所有ID中必须是唯一的,并且必须至少包含一个字符。值不能包含任何空格字符。

2lpgd968

2lpgd9682#

从技术上讲,按照html5标准,id在页面上必须是唯一的-https://developer.mozilla.org/en/dom/element.id
但我在非常模块化的网站上工作过,完全忽略了这一点,而且很有效。这是有道理的-最令人惊讶的部分。
我们称之为“组件化”
例如,您的页面上可能有一个组件,它是某种小部件。里面有自己独特的ID,比如“确定按钮”
一旦页面上有许多这样的小部件,从技术上讲,就有无效的html。但是将小部件组件化是非常有意义的,这样它们就可以在内部引用自己的ok按钮,例如,如果使用jquery从自己的根目录进行搜索,那么可能是: $widgetRoot.find("#ok-button") 这对我们来说是可行的,尽管技术上不应该使用id,一旦它们不是唯一的。
如上所述,甚至youtube也这么做了,所以它并不那么叛逆。

yzxexxkh

yzxexxkh3#

来自mdn

https://developer.mozilla.org/en/dom/element.id
所以我想最好是。。。

2admgd59

2admgd594#

这基本上就是id的全部要点:)id是特定的,每页只能使用一次。类可以随意使用。

eimct9ow

eimct9ow5#

对于同一个问题,现在有很多很好的答案https://softwareengineering.stackexchange.com/questions/127178/two-html-elements-with-same-id-attribute-how-bad-is-it-really.
上面没有提到的一个小道消息是,如果有几个相同的 id 是同一页(即使违反了标准,也会发生这种情况):
如果你必须解决这个问题(这很可悲),你可以使用 $("*#foo") 这将说服jquery使用 getElementsByTagName 并返回所有匹配元素的列表。

v6ylcynt

v6ylcynt6#

ID必须是唯一的。
每个人都有一个唯一的身份证号码(例如社会保险号码),而且在一个社会阶层中有很多人

r6l8ljro

r6l8ljro7#

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

hgb9j2n6

hgb9j2n68#

使用javascript,只能使用id引用一个元素。 document.getElementById 和jquery的 $ 选择器将只返回匹配的第一个元素。所以在多个元素上使用相同的id是没有意义的。

tvmytwxo

tvmytwxo9#

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

没有。

因为2019年12月6日的生活标准明确规定:
这个 class , id ,和 slot 可以在所有html元素上指定属性……。当在html元素上指定时 id 属性值在元素树中的所有ID中必须是唯一的,并且必须至少包含一个字符。
一个页面可能有几个dom树。例如,当你附加( Element.attachShadow() )元素的阴影dom树。

热释光;博士

id在整个页面中必须是唯一的吗?
不。
在dom树中,id必须是唯一的吗?
对。

p4tfgftt

p4tfgftt10#

浏览器过去对此很宽容(很多年前css还很年轻的时候),并且允许id被多次使用。他们变得更加严格了。
但是,是的id是唯一的,只能使用一次。
如果需要多次使用css格式,请使用class。

omtl5h9j

omtl5h9j11#

是的,ID是唯一的。班级不是。

相关问题