在快速查看jQuery选择器时,我在w3schools中遇到了这个页面。
在"更多示例"表的第二行中,它说:
$("p#intro:first") | Selects the first <p> element with id="intro"
它说:id="intro"的第一个元素。但是 AFAIK 在有效的 HTML 文档中只能有一个具有特定 id 的元素。
问题是:是否允许在有效的HTML文档中有两个(或多个)具有相同ID的元素,或者这是教程中的错误?甚至在jQuery中?!
我错过了什么吗?
是否允许在有效的HTML文档中有两个(或多个)具有相同ID的元素,
不
或者这是教程中的错误?
有点。
由于只允许一个具有给定 id 的元素,因此显式请求第一个元素是多余的......在好的文档中。
可能有一些浏览器会以这样的方式进行错误恢复,以便为您提供多个结果(特别是如果 jQuery 将内容传递给 querySelectorAll
而不是 getElementById
),当您有多个具有相同 id 的元素(在无效文档中)时,这可能会过滤掉后续的......但这不是您应该在自己的文档中执行的操作。如果您正在编写JS以在已知的浏览器子集中运行第三方代码,则可能是合理的,您知道以这种方式恢复错误。