一、DOM简介
DOM:文档对象模型 (DOM:Document Object Model)
用来呈现以及与任意 HTML 或 XML 文档交互的 API。DOM 是载入到浏览器中的文档模型,以节点树的形式来表现文档,每个节点代表文档的构成部分(例如:页面元素、字符串或注释等等)。
如下是一个简单的 HTML 页面源代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>DOM树示例</title>
</head>
<body>
<h1>DOM树示例</h1>
<p id="domP" title="这是一个p标签">DOM内容...</p>
</body>
</html>
将它映射成一个 树结构 如下图:文档中的每个元素、属性、文本等都代表着树中的一个节点。
PS:如需学习更多有关 DOM 的知识,请阅读 HTML DOM 教程https://www.w3cschool.cn/htmldom/htmldom-tutorial.html
XML DOM 教程https://www.w3cschool.cn/xmldom/xmldom-dom-tutorialjpkc1t5e.html
二、DOM级别
DOM 级别 0
DOM 级别 0 不是 W3C 规范。而仅仅是对在 Netscape Navigator 3.0 和 Microsoft Internet Explorer 3.0 中的等价功能性的一种定义。
W3C 的 DOM 级别 1 建立于此功能性之上。
DOM 级别 1
DOM 级别 1 专注于 HTML 和 XML 文档模型。它含有文档导航和处理功能。
DOM 级别 1 于 1998 年 10 月 1 日成为 W3C 推荐标准。(第二版的工作草案在2000 年 9 月 29 日)
DOM 级别 2
DOM 级别 2 对 DOM 级别 1 添加了样式表对象模型,并定义了操作附于文档之上的样式信息的功能性。
DOM 级别 2 同时还定义了一个事件模型(Events,规定了访问事件的API),并提供了对 XML 命名空间的支持。
作为一项 W3C 推荐标准,DOM 级别 2 规范发布于 2000 年 11 月 13 日:
●【Level 2 Core】
DOM Level 2 核心 规定了访问和更改文档内容及结构的一个 API,此 API 同时包含用于 XML 的接口。
●【Level 2 HTML】
DOM Level 2 HTML 规定了操作 HTML 文档结构和内容的 API。(这部分规范仍然是工作草案)
●【Level 2 Views】
DOM Level 2 规定了对文档视图进行访问和更改的 API。视图是与原文档相关联的表现形式或某种备用的表现形式。
●【Level 2 Style】
DOM Level 2 Style 规定了动态访问及更改内容样式表的 API。
●【Level 2 Events】
DOM Level 2 Events 规定了访问文档事件的 API。
●【Level 2 Traversal-Range】
DOM Level 2 Traversal-Range 规定了动态遍历和识别文档中内容范围的 API。
DOM 级别 3
DOM Level 3 规定了内容模型 (DTD 和 Schemas) 和文档验证。同时规定了文档加载和保存、文档查看、文档格式化和关键事件。DOM Level 3 建立于 DOM Core Level 2 之上。
●【Level 3 Requirements】
DOM Requirements 文档已经为 Level 3 requirements 进行了更新,并于 2000 年 4 月 12 日发布为工作草案。
下面的 DOM Level 3 工作草案发布于 2000 年 9 月 1 日:
●【Level 3 Core】
DOM Level 3 Core 规定了访问和更改文档内容、结构及样式的一个 API。
●【Level 3 Events】
通过增加新的接口和新的事件集,DOM Level 3 Events API 对 Level 2 Event API 的功能进行了扩展。
●【Level 3 Load and Save】
DOM Level 3 Content Model 规定了用于内容加载和保存、内容模型 (DTD and Schemas) 和文档验证支持的 API。
●【Level 3 Views and Formatting】
DOM Level 3 Views 规定了对文档视图进行访问和更改的 API。视图是与原文档相关联的表现形式或某种备用的表现形式。
以上来自W3C标准文档,是为了后续的DOM事件级别、DOM事件... 做引。