DOM(Document Object Model)也称为文档对象模型,是 W3C 组织推荐的处理可扩展标记语 言的标准编程接口。DOM 是一种与浏览器、平台和语言无关的应用程序接口(API),它可以动态 地访问程序和脚本,更新其内容、结构和 WWW 文档的风格。如果把文档作为一个树形结构,那 么树的每个节点表示了一个 html 标签或标签内的文本项。DOM 树结构精确地描述了 HTML 文 档中标签间的相互关联性。使用 DOM 接口可以同时定义很多方法来操作这棵树中的每一个元 素(节点)。下面构建一个网页文档,并且提炼出它的文档结构,用 DOM 的树形模式显示出来。 这样可以更详细地讲解 DOM 的操作,HTML 文档的结构如下:
将上面的 HTML 文档解析后,转化为一份完整的 DOM 树形结构,如下图所示:
而浏览器中所显示的网页内容,如下图所示:
因此,对 HTML 文档的处理可以通过对 DOM 树的操作实现。DOM 模型不仅描述了文档的结构,还定义了节点对象的行为,利用对象的方法和属性,可以方便地访问、修改、添加和删除 DOM 树的节点和内容。
节点这个词是一个网络用语,代表了网络中的一个连接点。一个网络就是由一些节点构成的 集合。在 DOM 中,文档是由节点构成的集合,它们包括元素、属性、文本、文档、注释等。在 实际开发时,要创建动态的内容,主要操作的节点包括元素节点、文本节点和属性节点。元素节 点即标签,如 <html>、<body>、<div>、<p> 等。文本节点即向用户展示的内容,如 <div>...</div>中的 JAVAScript、DOM、css 等文本。属性节点即元素属性,如 <a> 标签的链接属性href="http://news.bAIdu.com/"。
通俗地说,在网页中,HTML 是主体,装载各种 DOM 元 素;CSS 用来装饰 DOM 元 素; JavaScript 控制 DOM 元素。再次强调 DOM 是一个树形结构。操作一个 DOM 节点主要就是以下几 个操作:
(1)获取节点:通过 class 属性的类名获取元素,返回元素对象数组;通过 id 属性的 id 值获 取元素,返回一个元素对象;通过 name 属性获取元素,返回元素对象数组;通过标签名获取元素, 返回元素对象数组。
(2)更新节点:更新 DOM 节点的内容。
(3)添加新节点:在 DOM 节点下新增一个子节点。
(4)遍历节点:遍历 DOM 节点下的子节点。
(5)删除节点:将该节点从 HTML 中删除,同时该节点下的节点也会一并删除。