假设一个网页是由一个节点树构成的。考虑到常见 HTML 页面的结构如下:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
</html>

树的根节点是一个文档节点,它有两个子节点,doctypehtml 标签。html 标签由其子项、headbody 等构成。

每个节点都有一个名为 nodeType 的属性,该属性是标识其类型的数字。它可以用来区分节点的类型。例如,以下 div 只有一个子节点,其值为 Hello

<div id="ele">Hello</div>

div 节点是元素节点,而其子节点(Hello)是文本节点。下表取自 MDN,显示了常用的节点类型:

  • Node.ELEMENT_NODE (1):一个元素节点,它是一个 HTML 标签,如 <div><p> 等。
  • Node.TEXT_NODE (3):元素节点内的实际文本
  • Node.COMMENT_NODE (8):注释节点,例如 <!-...-->
  • Node.DOCUMENT_NODE (9):文档节点
  • Node.DOCUMENT_TYPE_NODE (10):文档类型节点,例如 <!DOCTYPE html>
document.nodeType // 9

简而言之,节点表示文档树中的单个节点,元素是一种特定类型的节点,即 HTML 标签。