我正在使用jquery,我只是想知道,id在整个页面中是否总是唯一的?课堂,我知道,你想重复多少遍就重复多少遍,id呢?
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-属性定义全局idid属性指定其元素的唯一标识符(id)。该值在元素的主子树中的所有ID中必须是唯一的,并且必须至少包含一个字符。值不能包含任何空格字符。
2lpgd9682#
从技术上讲,按照html5标准,id在页面上必须是唯一的-https://developer.mozilla.org/en/dom/element.id但我在非常模块化的网站上工作过,完全忽略了这一点,而且很有效。这是有道理的-最令人惊讶的部分。我们称之为“组件化”例如,您的页面上可能有一个组件,它是某种小部件。里面有自己独特的ID,比如“确定按钮”一旦页面上有许多这样的小部件,从技术上讲,就有无效的html。但是将小部件组件化是非常有意义的,这样它们就可以在内部引用自己的ok按钮,例如,如果使用jquery从自己的根目录进行搜索,那么可能是: $widgetRoot.find("#ok-button") 这对我们来说是可行的,尽管技术上不应该使用id,一旦它们不是唯一的。如上所述,甚至youtube也这么做了,所以它并不那么叛逆。
$widgetRoot.find("#ok-button")
yzxexxkh3#
来自mdnhttps://developer.mozilla.org/en/dom/element.id所以我想最好是。。。
2admgd594#
这基本上就是id的全部要点:)id是特定的,每页只能使用一次。类可以随意使用。
eimct9ow5#
对于同一个问题,现在有很多很好的答案https://softwareengineering.stackexchange.com/questions/127178/two-html-elements-with-same-id-attribute-how-bad-is-it-really.上面没有提到的一个小道消息是,如果有几个相同的 id 是同一页(即使违反了标准,也会发生这种情况):如果你必须解决这个问题(这很可悲),你可以使用 $("*#foo") 这将说服jquery使用 getElementsByTagName 并返回所有匹配元素的列表。
id
$("*#foo")
getElementsByTagName
v6ylcynt6#
ID必须是唯一的。每个人都有一个唯一的身份证号码(例如社会保险号码),而且在一个社会阶层中有很多人
r6l8ljro7#
2018年1月,这里是youtube html,你可以看到id=“button”id=“info”是重复的。
hgb9j2n68#
使用javascript,只能使用id引用一个元素。 document.getElementById 和jquery的 $ 选择器将只返回匹配的第一个元素。所以在多个元素上使用相同的id是没有意义的。
document.getElementById
$
tvmytwxo9#
id在整个页面中必须是唯一的吗?
因为2019年12月6日的生活标准明确规定:这个 class , id ,和 slot 可以在所有html元素上指定属性……。当在html元素上指定时 id 属性值在元素树中的所有ID中必须是唯一的,并且必须至少包含一个字符。一个页面可能有几个dom树。例如,当你附加( Element.attachShadow() )元素的阴影dom树。
class
slot
Element.attachShadow()
id在整个页面中必须是唯一的吗?不。在dom树中,id必须是唯一的吗?对。
p4tfgftt10#
浏览器过去对此很宽容(很多年前css还很年轻的时候),并且允许id被多次使用。他们变得更加严格了。但是,是的id是唯一的,只能使用一次。如果需要多次使用css格式,请使用class。
omtl5h9j11#
是的,ID是唯一的。班级不是。
11条答案
按热度按时间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中必须是唯一的,并且必须至少包含一个字符。值不能包含任何空格字符。
2lpgd9682#
从技术上讲,按照html5标准,id在页面上必须是唯一的-https://developer.mozilla.org/en/dom/element.id
但我在非常模块化的网站上工作过,完全忽略了这一点,而且很有效。这是有道理的-最令人惊讶的部分。
我们称之为“组件化”
例如,您的页面上可能有一个组件,它是某种小部件。里面有自己独特的ID,比如“确定按钮”
一旦页面上有许多这样的小部件,从技术上讲,就有无效的html。但是将小部件组件化是非常有意义的,这样它们就可以在内部引用自己的ok按钮,例如,如果使用jquery从自己的根目录进行搜索,那么可能是:
$widgetRoot.find("#ok-button")
这对我们来说是可行的,尽管技术上不应该使用id,一旦它们不是唯一的。如上所述,甚至youtube也这么做了,所以它并不那么叛逆。
yzxexxkh3#
来自mdn
https://developer.mozilla.org/en/dom/element.id
所以我想最好是。。。
2admgd594#
这基本上就是id的全部要点:)id是特定的,每页只能使用一次。类可以随意使用。
eimct9ow5#
对于同一个问题,现在有很多很好的答案https://softwareengineering.stackexchange.com/questions/127178/two-html-elements-with-same-id-attribute-how-bad-is-it-really.
上面没有提到的一个小道消息是,如果有几个相同的
id
是同一页(即使违反了标准,也会发生这种情况):如果你必须解决这个问题(这很可悲),你可以使用
$("*#foo")
这将说服jquery使用getElementsByTagName
并返回所有匹配元素的列表。v6ylcynt6#
ID必须是唯一的。
每个人都有一个唯一的身份证号码(例如社会保险号码),而且在一个社会阶层中有很多人
r6l8ljro7#
2018年1月,这里是youtube html,你可以看到id=“button”id=“info”是重复的。
hgb9j2n68#
使用javascript,只能使用id引用一个元素。
document.getElementById
和jquery的$
选择器将只返回匹配的第一个元素。所以在多个元素上使用相同的id是没有意义的。tvmytwxo9#
id在整个页面中必须是唯一的吗?
没有。
因为2019年12月6日的生活标准明确规定:
这个
class
,id
,和slot
可以在所有html元素上指定属性……。当在html元素上指定时id
属性值在元素树中的所有ID中必须是唯一的,并且必须至少包含一个字符。一个页面可能有几个dom树。例如,当你附加(
Element.attachShadow()
)元素的阴影dom树。热释光;博士
id在整个页面中必须是唯一的吗?
不。
在dom树中,id必须是唯一的吗?
对。
p4tfgftt10#
浏览器过去对此很宽容(很多年前css还很年轻的时候),并且允许id被多次使用。他们变得更加严格了。
但是,是的id是唯一的,只能使用一次。
如果需要多次使用css格式,请使用class。
omtl5h9j11#
是的,ID是唯一的。班级不是。