DOM Level 1、2、3 是 W3C 分阶段制定的文档对象模型标准:Level 1(1998年)定义基础结构,含 Core 和 HTML 模块;Level 2(2000年)增强交互与样式,新增 Events、Style、Traversal 等模块;Level 3(2004年)聚焦 XML 高级处理,支持加载保存、验证及 XPath 查询。

DOM Level 1、2、3 是 W3C 分阶段制定的文档对象模型标准,核心区别在于:Level 1 奠定基础结构,Level 2 加入交互与样式能力,Level 3 引入文档加载、保存和验证等高级 XML 特性。浏览器对它们的支持是渐进且不完全的,现代浏览器基本支持 Level 1 全部 + Level 2 大部分模块,Level 3 支持则非常有限。
DOM Level 1:定义文档结构的基础
发布于 1998 年,只包含两个模块:
-
DOM Core:提供通用的节点操作接口,如
getElementById、appendChild、childNodes,适用于 HTML 和 XML 文档。 -
DOM HTML:在 Core 基础上扩展 HTML 专用属性和方法,比如
form.elements、img.src、input.value等。
它不涉及事件、样式或遍历逻辑,只解决“如何表示和访问文档树”这个最基本问题。
DOM Level 2:增强交互与表现控制能力
2000 年左右推出,采用模块化设计,每个模块独立演进。主要新增模块包括:
-
DOM Events:标准化事件处理机制,支持
addEventListener、事件冒泡/捕获、事件对象属性(如target、stopPropagation)。 -
DOM Style:提供对内联样式的编程访问,如
element.style.color = 'red',以及读取计算样式(getComputedStyle)。 - DOM Views:定义文档视图概念(如 CSS 渲染前后),但实际浏览器支持极少,基本可忽略。
-
DOM Traversal and Range:新增
NodeIterator、TreeWalker、Range等接口,用于灵活遍历、选取和操作文档片段。 - DOM HTML(增强版):补充更多 HTML 表单、表格等元素的方法和属性。
-
命名空间支持:为 XML 场景增加
createElementNS、getAttributeNS等方法。
Level 2 的关键进步是让 DOM 不再只是“静态树”,而是能响应用户行为、控制样式、精准操作内容范围。
DOM Level 3:面向 XML 高级处理与文档生命周期
2004 年发布,重点不在网页交互,而是在 XML 应用场景下提升文档管理能力:
-
DOM Load and Save:提供
DOMParser和XMLSerializer,支持从字符串加载 XML、序列化 DOM 回字符串。 -
DOM Validation:允许基于 DTD 或 XML Schema 验证文档结构是否合法(
validateDocument等接口)。 -
DOM Core 扩展:支持 XML Infoset(如
getXmlVersion())、XPath 查询(evaluate)、XML Base 解析等。 -
键盘与输入事件细化:新增
keyup、input等更精确的事件类型(部分被后续 Level 4 继承并完善)。
这些功能在传统网页开发中极少直接使用,更多见于 XML 编辑器、服务端 XML 处理或富文本框架底层。
基本上就这些。Level 1 是骨架,Level 2 是肌肉和神经,Level 3 是体检报告和运输系统——各司其职,但日常前端开发最常打交道的,还是 Level 1 的基础 API 和 Level 2 的事件与样式模块。










