childNodes.length与children.length的区别

因为 childNodes 包含的不仅仅只有 html 节点 ,所有属性文本等都包含在 childNodes 里面 , 你可以通过 nodeType 来判断是哪种类型的节点,只有当 nodeType==1 时才使元素节点, 2 是属性节点, 3 是文本节点。而 children.length 只计算节点的数量。
包括进行节点长度的计算,节点的移动时都要注意这一点。
要获得一个元素的文本,比如要获得一个 P 节点的文本,有的人喜欢使用 innerHTML ,更改也是一样,其实这不太好,因为使用 innerHTML 浏览器会认为你要插入的东西是一段标签文本,而你只想插入一段纯文本,这就导致浏览器试图去解析你的那段纯文本,这会造成不必要的资源浪费。所以建议使用 element.firstChild.nodeValue, 为什么是 firstChild 呢?因为 childNodes[0] 就是文本节点,不信你可以看看它的 nodeType

你可能感兴趣的:(childNodes.length与children.length的区别)