如果html無效並且具有多個具有相同「someid」的div元素,將返回jQuery("div#someid")
。它會返回這些div的第一個嗎?或者是隨機的?有jQuery(div#id)行爲無效html
回答
選擇器會在不同的瀏覽器中給出不同的結果。
一些測試顯示這些結果:
Firefox 19: All elements
IE 10: All elements
IE 9: All elements
IE 8: All elements
IE 7: One element
Chrome 25: All elements
結果也可能與其他因素,如jQuery版本,頁面渲染模式和操作系統的不同而不同。你只是不能指望一致的結果與衝突的ID屬性。
這實際上只涉及'div#someid'作爲CSS選擇器* *應該*返回無論您的標記是否符合,所有具有相同ID的元素。 IE7是這些列表中唯一不支持本機選擇器API的瀏覽器,因此IE7並未使用它來處理傳遞給jQuery的有效CSS選擇器,從結果中可以明顯看出jQuery將選擇器與規範區別開來。也就是說,最後一句話依然如此。只是不要使用重複的ID來節省自己不必要的麻煩。 – BoltClock 2013-03-22 10:13:42
還要注意''div#someid''的行爲與省略'div'部分並僅使用'「#test」'不同 - 當後者只返回一個元素時。 – nnnnnn 2013-03-22 10:16:53
謝謝您的詳細解答! – trinity 2013-03-22 10:21:24
相同的ID是無效的......所以你應該避免...和使用類...(但不會引發錯誤) 反正選擇將返回第一次出現的該分區具有相同的ID ..
最好知道的是嘗試一下,看看它在這個小動物http://tinker.io/cba17行動,所以答案是它會返回一個具有該ID的所有div的集合。儘管請避免這種情況,因爲它是無效的html,而是使用類。
還要注意有使用$('#someid'
)和$('div#someid')
之間的差異:)
$('#someid'
將返回第一個div使用該ID。
$('div#someid')
將返回全部元素,如我在上面發佈的小提琴中所示。
- 1. jQuery的改變DIV ID,運行舊DIV ID執行不改變
- 2. jquery .html()無效字符「#」
- 3. 將Html添加到Div效果jQuery
- 4. jquery Next()div ID
- 5. 將Div ID更改爲有效
- 6. HTML類與ID爲一組的div
- 7. jquery無法找到div的ID
- 8. jquery:無法獲得div的ID
- 9. jQuery無法找到指定ID的div
- 10. ListView ID無效
- 11. 。jquery中的.append()對div無效
- 12. ZoneOffset的ID無效ID
- 13. jquery變量爲div ID或類
- 14. requestlayout,無效行爲
- 15. 在html中嵌入的SVG中重用ID:無效的html?
- 16. jQuery的TMPL使無效的HTML
- 17. 會話ID無效
- 18. Boost Thread ID無效
- 19. HTML jquery按鈕ID
- 20. 爲什麼jQuery(「html body div table」)返回null,而jQuery(「html body div」)不是?
- 21. 爲什麼我無法訪問HTML div/jQuery對象的屬性?
- 22. JQuery的通過HTML ID爲參數
- 23. jQuery/HTML擴展DIV
- 24. JQuery $ .html使div空
- 25. JQuery HTML Div導航
- 26. 將HTML渲染爲div(jQuery/ColdFusion/Ajax)
- 27. Css&Html,什麼是div id內部div id的css
- 28. 如何使jQuery與包含重複ID的無效HTML一起工作?
- 29. JQuery PHP獨特的ID爲每個HTML表格的行
- 30. jQuery:將div ID應用於.load ID
爲什麼不自己嘗試一下? :O – Jashwant 2013-03-22 10:03:11
[只讀文檔](http://api.jquery.com/id-selector/) - 「如果多個元素被分配了相同的ID,那麼使用該ID的查詢將僅選擇第一個匹配的元素DOM中的元素「。 – 2013-03-22 10:03:23
ID應該是唯一的。給他們一個普通的班。 – lifetimes 2013-03-22 10:03:25