Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ID在整个页面中必须是唯一的吗?_Jquery_Html_Css - Fatal编程技术网

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

Jquery ID在整个页面中必须是唯一的吗?,jquery,html,css,Jquery,Html,Css,我正在使用jQuery,我只是想知道,ID在整个页面中是否必须总是唯一的?我知道,类可以重复任意多次,ID呢?是的,ID是唯一的。类不是。来自mdn 所以我想最好是…ID必须总是唯一的 每个人都有一个唯一的身份证号码(例如社会保险号码),并且在一个社会阶层中有很多人这基本上就是身份证的要点:)身份证是特定的,每页只能使用一次。类可以随意使用。是的,它必须是唯一的 HTML4: 第7.5.2节: id=名称[CS] 此属性为元素指定名称。此名称在文档中必须是唯一的 HTML5: id属性指定

我正在使用jQuery,我只是想知道,ID在整个页面中是否必须总是唯一的?我知道,类可以重复任意多次,ID呢?

是的,ID是唯一的。类不是。来自mdn


所以我想最好是…

ID必须总是唯一的


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

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

是的,它必须是唯一的

HTML4:

第7.5.2节:

id=名称[CS] 此属性为元素指定名称。此名称在文档中必须是唯一的

HTML5:

id属性指定其元素的唯一标识符(id)。这个 值在元素的主子树中的所有ID中必须是唯一的 并且必须至少包含一个字符。该值不能包含 任何空格字符


浏览器过去对此很宽容(很多年前css还年轻的时候),允许多次使用ID。他们变得更加严格了

但是,是ID必须是唯一的,并且只能使用一次


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

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

对于同一个问题,目前有很多很好的答案

如果同一页面上有多个相同的
id
s(即使违反了标准,也会发生这种情况):

如果必须解决这个问题(很遗憾),可以使用
$(“*#foo”)
,这将说服jQuery使用
getElementsByTagName
,并返回所有匹配元素的列表


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


从技术上讲,根据HTML5标准,ID在页面上必须是唯一的-

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

我们称之为“组件化”

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

一旦页面上有许多这样的小部件,从技术上讲,您就拥有无效的HTML。但是组件化您的小部件是非常有意义的,这样它们在内部都会引用自己的ok按钮,例如,如果使用jquery从它自己的根目录进行搜索,它可能是:
$widgetRoot.find(“#ok按钮”)

这对我们来说是可行的,尽管从技术上讲,一旦ID不是唯一的,就不应该使用ID

如上所述,即使是YouTube也会这样做,所以它并不那么叛逆

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

不 由于2021年2月25日,该协议明确规定:

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

一个页面可能有几个DOM树。例如,当您将()附加到一个元素时,它会这样做


TL;博士 ID在整个页面中必须是唯一的吗

没有

在DOM树中ID必须是唯一的吗


是。

id属性通常只使用一次,因为id是唯一的。如果您认为可以,您不能覆盖id的定义。子树中的“在元素的主子树中的所有id中”。是的,子,树。你不应该把大型动态网站的输出看作是“有效代码”的先验例子。仅仅因为YouTube跳桥并不意味着我们应该跳桥,我强烈反对。这是没有意义的,因为ID在页面上是唯一的,这与您的“组件化”理念大相径庭。这些重复出现的元素应该是类。您可以根据需要从特定的、唯一的容器外部将它们作为目标。例如,
#ticker小部件。确定按钮