2012-08-15 78 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

相關問題