HTMLCollection
HTMLCollection 接口表示一个包含了元素(元素顺序为文档流中的顺序)的通用集合(与 arguments 相似的类数组 (array-like) 对象),还提供了用来从该集合中选择元素的方法和属性。
Element.children
Element.children 是一个只读属性,返回 一个 Node 的子elements ,是一个动态更新的 HTMLCollection。
Node.childNodes
Node.childNodes 返回包含指定节点的子节点的集合,该集合为即时更新的集合(live collection)。ndList 变量为 NodeList 类型,且为只读。
document节点 (文档节点) 包含两个子节点: Doctype 声明和根节点。
NodeList
NodeList 对象是节点的集合,通常是由属性,如Node.childNodes 和 方法,如document.querySelectorAll 返回的。
var list = document.querySelectorAll('input[type=checkbox]'); Array.prototype.forEach.call(list, function (checkbox) { checkbox.checked = true; });
除了 forEach 方法,NodeList 没有这些类似数组的方法。
children 和 childNodes区别
返回的形式都是类数组,children是HTMLCollection , childNodes是NodeList
文本节点也是childNodes , 而children只能是标签元素
Element.children.元素id
Element.children.item(0/1/2/3...)
Element.children.length
Element.childNodes.forEach()
Element.childNodes.hasOwnProperty()
Element.childNodes.item()
Element.childNodes.keys()
Element.childNodes.length
Element.childNodes.values()
总结: childNodes方法更多,更像是对象. children方法比较少
只遍历标签元素用children