、
和
- (这三个元素是兄弟关系)。如果继续深入下去,我们将发现
- 元素。
利用这种简单的家谱关系记号,我们可以把各元素之间的关系简明清晰地表达出来。
例如,
和
- 之间是什么关系?答案是它们是兄弟关系。
- 元素),后者包含着文本节点。
3.属性节点
还存在着其他一些节点类型。例如,注释就是另外一种节点类型。但我们这里还想向大家再多介绍一种节点类型。
真的不掉线
吗??、????????????
元素都或多或少地有一些属性,属性的作用是对元素做出更具体的描述。例如,几乎所有的元素都有一个title属性,而我们可以利用这个属性对包含在元素里的东西做出准确的描述:
那么
和- 之间又是什么关系?是
- 的父元素,
- 是的一个子元素。
如果把各种文档元素想像成一棵家谱树上的各个节点的话,我们就可以用同样的记号来描
述DOM。不过,与使用“家谱树”这个术语相比,把一份文档称为一棵“节点树”更准确。
3.3.1 节点
节点(node)这个名词来自网络理论,它代表着网络中的一个连接点。网络是由节点构成的集合。
在现实世界里,一切事物都由原子构成。原子是现实世界的节点。但原子本身还可以进一步分解为更细小的亚原子微粒。这些亚原子微粒同样是节点。
DOM也是同样的情况。文档也是由节点构成的集合,只不过此时的节点是文档树上的树枝和树叶而已。
真的不掉线
吗??、????????????
在DOM里存在着许多不同类型的节点。就像原子包含着亚原子微粒那样,有些DOM节点类型还包含着其他类型的节点。
1. 元素节点
DOM的原子是元素节点(element node)。
在描述刚才那份“购物清单”文档时,我们使用了诸如
、和
- 之类的元素。如果把Web上的文档比作一座大厦,元素就是建造这座大厦的砖块,这些元素在文档中的布局形成了文档的结构。
各种标签提供了元素的名字。文本段落元素的名字是“p”,无序清单元素的名字是“ul”,列表项元素的名字是“li”。
元素可以包含其他的元素。在我们的“购物清单”文档里,所有的列表项元素都包含在一个
无序清单元素的内部。事实上,没有被包含在其他元素里的唯一元素是元素。它是我们的节点树的根元素。
2.文本节点
元素只是不同节点类型中的一种。如果一份文档完全由一些空白元素构成,它将有一个结构,但这份文档本身将不会包含什么内容。在网上,内容决定着一切,没有内容的文档是没有任何价值的,而绝大多数内容都是由文本提供的。
在“购物清单”例子里,
元素包含着文本“Don’t forget to buy this stuff.”。它是一个文本节点(text node)。
在XHTML文档里,文本节点总是被包含在元素节点的内部。但并非所有的元素节点都包含有文本节点。在“购物清单”文档里,
- 元素没有直接包含任何文本节点——它包含着其他的
元素节点(一些
- 元素),后者包含着文本节点。
- 也是一个父元素。它有三个子元素,它们都是