部分摘自书籍、教学视频、w3c、百度
什么是DOM?
DOM (Document Object Model文档对象模型)是 W3C(万维网联盟)的标准。
DOM 定义了访问 HTML 和 XML 文档的标准:
“W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。”W3C DOM 标准被分为 3 个不同的部分:
- 核心 DOM - 针对任何结构化文档的标准模型
- XML DOM - 针对 XML 文档的标准模型
- HTML DOM - 针对 HTML 文档的标准模型
大一到大二之间初学DOM时以为只是直接理解为HTML的脚手架,现在重新回头看,远没有这么简单。
DOM的分类,看了JS的权威指南真是一脸懵逼啊。
DOM的组成
DOM由3部分组成,分别是Core DOM、XML DOM和HTML DOM。
DOM节点树。DOM以树形结构组织HTML文档,文档中每个标签或元素都是一个节点,各个节点之间都存在着关系。例如<head>和<body>的父节点都是<html>。
HTML DOM与核心(Core)DOM的区别区别与联系
相对于核心DOM,HTML DOM定义了用于操作HTML文档专用的API是对核心DOM的扩展。
两者不同之处在于:HTML DOM提供了大量便利的方法和属性,这些方法和属性与现有的程序模型一致,更便于脚本的编写者控制。
两者联系:HTML DOM的很多对象模型来自于核心DOM,例如,HTMLDocument接口继承自核心DOM的Document接口,但HTMLDocument包含有专用于HTML文档操作的方法和属性。
分类 / 区别 |
核心(Core)DOM |
HTML DOM |
对 象 |
Document,Node, ElementNode,TextNode,AttributeNode,CommentNode,NodeList | image,Table,Form,Input,Select...HTML标签对象化 |
核心DOM提供了统一的操作接口: createElement appendChild setAttribute removeAttribute nodeName |
HTML DOM提供了封装好的各种对象: Image Select Option |
|
创建新元素 | var newNode=document.createElement("img") | var newNode=new Image(); |
给元素添加属性 | e.setAttribure(‘’,‘’) e.setAttribureNode(attr) |
img.src=''; img.id=''; imd.title=''; img.className='' img.style.display=''; |
适用场合 | 核心DOM适合操作节点,如创建,删除,查找等 把DOM看成树,则核心 DOM适合,增减枝干,查找特定枝干 |
HTML DOM适合操作属性,如读取或修改属性的值 给枝干更改外观,颜色,属性,样式 |