DOM( Document Object Model ——文档对象模型)是用来呈现以及与任意 HTML 或 XML 文档交互的 API。DOM 是载入到浏览器(宿主对象)中的文档模型,以节点树的形式来表现文档,每个节点代表文档的构成部分(例如:页面元素、字符串或注释等等)。

DOM 是万维网上使用最为广泛的API之一,因为它允许运行在浏览器中的代码访问文件中的节点并与之交互。节点可以被创建,移动或修改。事件监听器可以被添加到节点上并在给定事件发生时触发。

DOM 并不是天生就被规范好了的,它是浏览器开始实现 JavaScript 时才出现的。这个传统的 DOM 有时会被称为 DOM 0。现在, WHATWG 维护 DOM 现存标准。

脱胎于风景和微软早期的 DHTML,DOM 现在是真正跨平台、语言无关的表示和操作网页的方式。

DOM 由一系列节点类型构成

  • Node 是基准节点类型,是文档一个部分的抽象表示,所有其他类型都继承 Node。
  • Document 类型表示整个文档,对应树形结构的李发节点。
    • JavaScript 中,document 对象是 Document 的实例,拥有查询和获取节点的很多方法
  • Element 节点表示文档中所有 HTML 和 XML 元素,可以用来操作它们的内容和属性。
  • 其它节点类型分别表示文本内容、注释、文档类型、CDATA 区块和文档片段。