“jQuery选择器”是如何产生的;id为“foo”的第一个元素;?

“jQuery选择器”是如何产生的;id为“foo”的第一个元素;?,jquery,html,jquery-selectors,Jquery,Html,Jquery Selectors,在快速回顾jQuery选择器时,我遇到了一个问题 在第二行的“更多示例”表中,它表示: $("p#intro:first") | Selects the first <p> element with id="intro" $(“p#intro:first”)选择id=“intro”的第一个元素 它说:id=“intro”的第一个元素。但是,在有效的HTML文档中,只能有一个具有特定id的元素 问题是:在一个有效的HTML文档中是否允许有两个(或更多)具有相同id的元素,或者这是

在快速回顾jQuery选择器时,我遇到了一个问题

在第二行的“更多示例”表中,它表示:

$("p#intro:first")  | Selects the first <p> element with id="intro"
$(“p#intro:first”)选择id=“intro”的第一个元素
它说:id=“intro”的第一个元素。但是,在有效的HTML文档中,只能有一个具有特定id的元素

问题是:在一个有效的HTML文档中是否允许有两个(或更多)具有相同id的元素,或者这是教程中的一个错误?甚至在jQuery中

有什么我遗漏的吗

是否允许在有效的HTML文档中有两个(或更多)具有相同id的元素

没有

或者这是教程中的错误

有点

由于只允许使用给定id的一个元素,因此显式请求第一个元素是多余的……在良好的文档中

当您有多个具有相同id的元素(在无效文档中)时,可能会有一些浏览器以这种方式进行错误恢复,以便为您提供多个结果(特别是如果jQuery将内容传递给
querySelectorAll
而不是
getElementById
)这可能会过滤掉后续的文档…但这不是您应该在自己的文档中执行的操作。如果您正在编写JS以在已知浏览器子集中运行第三方代码,并且您知道错误会以这种方式恢复,那么这可能是合理的

是否允许在有效的HTML文档中有两个(或更多)具有相同id的元素

没有

或者这是教程中的错误

有点

由于只允许使用给定id的一个元素,因此显式请求第一个元素是多余的……在良好的文档中


当您有多个具有相同id的元素(在无效文档中)时,可能会有一些浏览器以这种方式进行错误恢复,以便为您提供多个结果(特别是如果jQuery将内容传递给
querySelectorAll
而不是
getElementById
)这可能会过滤掉后续的文档…但这不是您应该在自己的文档中执行的操作。如果您正在编写JS,以便在已知的浏览器子集中运行第三方代码,并且您知道错误会以这种方式恢复,那么这可能是合理的。

Oh boy,下面是关于W3学校的评论。3…2…1…相关。。。回答你的问题,不。重复使用ID永远是无效的。是的,这只是一个w3schools充其量只是一个普通资源的例子。从技术上讲,选择器会做他们说它会做的事情,但正如你所指出的,这是一个坏例子,因为ID应该是唯一的哦,孩子,下面是关于W3学校的评论。3…2…1…相关。。。回答你的问题,不。重复使用ID永远是无效的。是的,这只是一个w3schools充其量只是一个普通资源的例子。从技术上讲,选择器将执行他们所说的操作,但正如您所指出的,这是一个坏例子,因为id无论如何都应该是唯一的
$('[id=“myID”]')
可以返回多个元素,但这是欺骗:-P
$('[id=“myID”]')
可以返回多个元素,但这是欺骗:-P