【EASYDOM系列教程】之DOM 树结构

DOM 树结构

DOM 之因此能够访问和更新 HTML 页面中的内容、结构和样式,是由于 DOM 将 HTML 页面解析为一个 树结构html

例以下面这段代码是一个简单的 HTML 页面源代码:浏览器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>示例页面</title>
</head>
<body>
<h2>这是一个示例页面</h2>
<p id="p" title="this is p.">这是一个段落内容.</p>
</body>
</html>

将上面的 HTML 页面绘制成 DOM 树结构,以下效果:网络

DOM 树结构

经过上面的 DOM 树结构,咱们能够看到,Document 对象是做为 DOM 树结构的入口。再根据 DOM 树结构的特色,咱们就能够定位到 HTML 页面中任意一个元素、属性或文本内容。学习

浏览器加载并运行 HTML 页面时,会建立 DOM 树结构这个模型。而且 DOM 树结构模型会被存储在浏览器的内存中。this

当 HTML 页面内容过于庞大和复杂时,生成的 DOM 树结构就越复杂。进而,浏览器加载 HTML 页面的耗时就越长。spa

什么是节点

节点(Node)本来是网络术语,表示网络中的链接点。一个网络是由一些节点构成的集合。code

在 DOM 树结构中,节点也是很重要的一个概念。简单来讲,节点做为 DOM 树结构中的链接点,最终构成了完整的 DOM 树结构。htm

DOM 树结构中的节点

在 DOM 树结构中,主要由如下 4 种节点组成:对象

节点名称 含义 描述
文档节点 表示整个 HTML 页面(至关于 document 对象) 当须要访问任何标签、属性或文本时,均可以经过文档节点进行导航
元素节点 表示 HTML 页面中的标签(即 HTML 页面的结构) 当访问 DOM 树时,须要从查找元素节点开始
属性节点 表示 HTML 页面中的开始标签包含的属性
文本节点 表示 HTML 页面中的标签所包含的文本内容

除了上面 4 种常见的节点类型之外,DOM 树结构中还具备不少节点类型。blog

节点类型

还有一些节点类型,目前已被废弃(再也不使用)。

废弃的节点类型

DOM 节点树结构

经过节点概念,咱们能够将本来的 DOM 树结构改为 DOM 节点树结构进行表示。

DOM 节点树结构

在 DOM 的标准规范中,提供了 Node 对象。该对象主要依靠 DOM 节点树结构中的常见 4 种节点类型,来访问和更新 HTML 页面中的内容。

关于 Node 对象,咱们会在后面的章节中学习。

节点之间的关系

DOM 中的 M 表示 Model(模型),也能够用来表示 DOM 节点树结构中节点之间的关系。

在 DOM 节点树结构中,主要具备如下三层关系。

父级与子级

若是咱们将 HTML 页面中某一个元素做为父级的话,那包含在该元素内的第一层全部元素均可以称为该元素的子级。

例如,咱们来看一下下面这个 DOM 节点树结构:

父级与子级的关系

在上面的 DOM 节点树结构中,<html> 元素做为父级,<head><body> 元素做为子级。

祖先与后代

若是咱们将 HTML 页面中某一个元素做为祖先的话,那包含在该元素内的全部元素(除子级以外的)均可以称为该元素的后代。

例如,咱们来看一下下面这个 DOM 节点树结构:

祖先与后代的关系

在上面的 DOM 节点树结构中,<html> 元素做为祖先,<meta><title><h2><p> 元素做为后代。

兄弟关系

具备相同父级元素的两个或几个元素之间就是兄弟关系。例如,咱们来看一下下面这个 DOM 节点树结构:

兄弟关系

在上面的 DOM 节点树结构中,<meta><title> 元素就是兄弟关系。由于它们具备相同的父级元素 <head>

值得注意的是: <title><h2> 元素并非兄弟关系。由于它们的父级元素并非相同元素。

DOM 访问和更新 HTML 页面中的内容,主要依靠 DOM 节点树结构中这三种节点关系完成。


本教程免费开源,任何人均可以避免费学习、分享,甚至能够进行修改。但须要注明做者及来源,而且不能用于商业。

本教程采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。

图片描述

相关文章
相关标签/搜索