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的浏览器实现者的错误空间。