我發現自己正在使用JavaScript,並且遇到了childNodes
和children
屬性。我想知道它們之間的區別是什麼。對另一個人來說也是一個優先選擇?JavaScript和childNodes之間的區別是什麼?
200
A
回答
212
.children
是Element的財產。只有元素有孩子,而這些孩子都是元素類型。
但是.childNodes
是Node的財產。 .childNodes
可以包含任何節點。
所以一個具體的例子是
var el = document.createElement("div");
el.textContent = "foo"
el.childNodes.length === 1; // TextNode is a node child
el.children.length === 0; // no Element children
當然.children
的是DOM4所以瀏覽器的支持是不穩定的,但是如果你使用DOM-shim,您的跨瀏覽器的問題就會迎刃而解!
大多數時候你想使用.children
,因爲通常你不想在你的DOM操作中循環TextNodes或Comments。
如果您確實想操作TextNodes,您可能需要.textContent
。
16
Element.children
僅返回元素子元素,而Node.childNodes
返回所有節點子元素。請注意,元素是節點,因此元素上都可用。
我相信childNodes
更可靠。例如,MDC(鏈接上面)指出IE只在IE 9中獲得children
。childNodes
爲瀏覽器實現者提供了更少的錯誤空間。
相關問題
- 1. javascript .childNodes和.children之間的區別
- 2. $(())和expr之間的區別是什麼?
- 3. $和$ .fn之間的區別是什麼?
- 4. ++和:haskell之間的區別是什麼?
- 5. $(「」)和$ .find(「」)之間的區別是什麼?
- 6. 「\」和「\。」之間的區別是什麼?
- 7. 「$ | ++」和「$ | = 1」之間的區別是什麼
- 8. $(...)和`...`之間的區別是什麼
- 9. .equals()和==之間的區別是什麼?
- 10. [undefined]和[,]之間的區別是什麼?
- 11. firstChild和childNodes [1]有什麼區別?
- 12. Qt:Webkit中的QtScript和Javascript之間的區別是什麼
- 13. 區別:%% a和%variable%變量之間的區別是什麼?
- 14. JavaScript中Number()和ToNumber()之間的區別是什麼?
- 15. 什麼是爲PrintWriter和DataOutputStream之間的區別是什麼?
- 16. MVC和MVVM之間的區別和相似之處是什麼?
- 17. TVF/UDF之間的區別是什麼
- 18. [EmailPasswordAuthProvider,EmailAuthProvider]之間的區別是什麼
- 19. System.Linq.Enumerable.WhereListIterator&System.Linq.Enumerable.WhereSelectListIterator之間的區別是什麼?
- 20. 什麼之間的區別〜^和Git中
- 21. 什麼@android之間的區別:和android:
- 22. 什麼是SetupAPI,SetupAPI1和SetupAPI2?他們之間有什麼區別?
- 23. lock_guard之後lock()和guard()之間的區別是什麼
- 24. 「層」和「層」之間有什麼區別?
- 25. Tableau和QlikView之間有什麼區別
- 26. Microsoft.CompilerServices.AsyncTargetingPack和Microsoft.Bcl.Async之間有什麼區別?
- 27. @Entity和@embeddable之間有什麼區別
- 28. ContentObservable和DataSetObservable之間有什麼區別?
- 29. touchmove和gesturechange之間有什麼區別?
- 30. :notification.flags和notification.defaults之間有什麼區別?
是的,IE似乎有一些問題:http://www.quirksmode.org/dom/w3c_core.html#t71 –
孩子可以是任何類型的,不只是HTML元素 – david
@david是什麼? 「僅匹配元素的孩子」。子女只能是元素 – Raynos