JavaScript和childNodes之间有什么区别?
我发现自己使用JavaScript,我碰到了childNodes
和children
属性。 我想知道他们之间的区别是什么。 也是一个比较喜欢的?
.children
是元素的属性。 只有元素有孩子,而这些孩子都是元素types。
但.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操作中循环TextNode或者Comments。
如果你想操作TextNode,你可能需要.textContent
。
Element.children
仅返回元素子元素,而Node.childNodes
返回所有节点子元素。 请注意,元素是节点,所以这两个元素都可用。
我相信childNodes
更可靠。 例如,MDC(链接上面)指出,IE浏览器只有在IE 9 children
权利childNodes
提供较less的浏览器实现者的错误空间。