在JavaScript中,节点也是分为很多类型的。DOM节点共有12种类型,不过常见的只有3种(其他的不用管)。

  • (1)元素节点
  • (2)属性节点
  • (3)文本节点

很多人看到下面这句代码,就认为只有一个节点,因为只有div这一个元素嘛。实际上,这里有3个节点。你没听错,就是3个!

<div id="wrapper">绿叶学习网</div>

从图中可以很清晰地看出来了,JavaScript会把元素、属性以及文本当作不同的节点来处理。表示元素的叫做“元素节点”,表示属性的叫做“属性节点”,而表示文本的当然也就叫做“文本节点”。很多人认为节点就一定等于元素,这样的理解是错的,因为节点有好多种。总而言之:节点跟元素是不一样的概念,节点是包括元素的。

在JavaScript中,我们可以使用nodeType属性来判断一个节点的类型。不同节点的nodeType属性值如下表所示。

不同节点的nodeType属性值
节点类型 nodeType值
元素节点 1
属性节点 2
文本节点 3

nodeType的值是一个数字,而不是像"element"或"attribute"那样的英文字符串。至于怎么用nodeType来判断节点类型,后面很快就可以接触到。

此外,对于节点类型,有以下3点需要特别注意。

  • (1)一个元素就是一个节点,这个节点称之为“元素节点”。
  • (2)属性节点和文本节点看起来像是元素节点的一部分,但实际上,它们是独立的节点,并不属于元素节点。
  • (3)只有元素节点才可以拥有子节点,属性节点和文本节点都无法拥有子节点(它们求子多年,但仍未如愿)。

很多初学者可能认为节点类型没什么用,事实上这些是后面知识的基础。只有掌握了这个概念,在学习后面的知识时才会有一个清晰的理解。