jquery - "first element with id=foo"的 jQuery 选择器是怎么来的?

标签 jquery html jquery-selectors

在快速回顾 jQuery 选择器时,我遇到了 this page in w3schools .

一些更多示例表中,第二行显示:

$("p#intro:first")  | Selects the first <p> element with id="intro"

它说:第一个带有 id="intro"的元素。但据我所知,有效 HTML 文档中只能有一个具有特定 id 的元素。

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

我有什么遗漏吗?

最佳答案

Is it ever allowed to have two (or more) elements with the same id in a valid HTML document,

没有

or this is a mistake in the tutorial?

有点。

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

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

关于jquery - "first element with id=foo"的 jQuery 选择器是怎么来的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11973060/

相关文章:

jquery - 配置单级下拉菜单

javascript - JS 仅适用于相关项目的条件

javascript - 用于突出显示功能的更高效的 JavaScript 代码?

html - wrapper 中 3 个盒子的水平对齐

javascript - 如何使用 jQuery 和 JavaScript 选择一行中的特定列?

javascript - 在 JS (Wordpress) 中获取帖子数

不删除第一张幻灯片的 Javascript slider 添加/删除功能

html - 调整浏览器大小时 Div 永久定位

jquery - 如何为多个 ID 附加单击处理程序并在 jQuery 中识别处理程序中的 ID?

javascript - 取消选择 jquery 选择对象中的项目