2012-08-15 362 views
1

在快速浏览jQuery选择器时,我碰到了this page in w3schoolsjQuery选择器如何“ID为foo的第一个元素”?

一些例子表,在第二行,它说:

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

它说:id为第一元件= “前奏”。但是AFAIK只能在有效的 HTML文档中使用一个元素与某个ID。

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

有什么我失踪了吗?

+6

哦,男孩,这里来了关于w3schools的评论。 3 ... 2 ... 1 ... – j08691 2012-08-15 16:20:12

+0

相关... http://stackoverflow.com/questions/5710350/w3schools-jquery-quiz/5710362#5710362 – 2012-08-15 16:20:49

+2

并回答你的问题,没有。重新使用ID永远不会有效。 – j08691 2012-08-15 16:20:56

回答

5

是以往任何时候都允许有两个(或更多)具有相同ID的元素有效的HTML文档中,

没有

或者这是在本教程的错误呢?

的排序。

由于只允许一个元素具有给定的ID,明确请求第一个元素是多余的...在良好的文档中。

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

+3

'$('[id =“myID”]')* * *返回多个元素,但这是作弊:-P – 2012-08-15 16:27:56

相关问题