面试题
HTML中childNodes和children有什么区别?

HTML中childNodes和children有什么区别?

  • Node:在 DOM 树中,所有的节点都是 Node,也就是说 Node 包含了 HTML 元素标签、文本、以及注释等等内容,它是所有 DOM 的基类。
  • Element:Element 是所有 HTML 标签的基类,也就是说 Element 只包含 HTML 元素标签。

Node 和 Element 两者是包含关系,Node 包含 Element。 从而衍生出了两个集合:NodeList 和 HTMLCollection。

  • NodeList 是 Node 的集合(childNodes)。
  • HTMLCollection 是 Element 的集合(children)。

虽然我们可以通过NodeType=1元素|2属性|3文本来辨别种类,但注释也会算进文本节点。