在很多地方听到过DOM,也用到过,但是从来没有系统的了解过,这里对DOM进行一个小结!
一、什么是DOM
1、DOM:(Document Object Model)也就是:文档对象模型;
2、DOM是W3C的标准,定义了访问HTML和XML文档标准,"W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。"
二、特点
1、实现了页面上数据和结构的树形表示
2、编程接口,使得页面的交互性大大增强
3、可以让JS在浏览器间移植
4、可以使用户界面动态的变化(动态的显示或隐藏一个元素,改变属性,增加属性)
三、三个不同的部分
核心 DOM - 针对任何结构化文档的标准模型
XML DOM - 针对 XML 文档的标准模型
HTML DOM - 针对 HTML 文档的标准模型
基本都是类似的,因为DOM 定义了所有文档元素的对象和属性,以及访问它们的方法(接口)
1、 DOM节点树之间关系
(1)HTML DOM
(2)XML DOM
2、HTML DOM 和XML DOM 的比较
(1)核心DOM是HTML DOM 和XML DOM的基础,但在HTML中特定元素的功能,和恰到好处的、易用的、针对常见性任务的HTML文档操作机制。
(2)HTML DOM 是一种XML DOM ,所以,HTML DOM拥有XML DOM的属性和方法,并且拥有自己的属性和方法。
(3)HTML DOM的特性和方法不是标准的DOM 是实现,是专门针对HTML同时也让一些DOM操作变得简便。
(4)HTML DOM的接口是基于元素的,而不是基于节点的。因为HTML就是XML的一种特例,元素从某种角度也是节点的一种特例。
(5)XML DOM就是基于节点的。
下面以获取节点文本为例,比较两个的不同:
HTML DOM :
Hello World!
<script>
var txt=document.getElementById("intro").innerHTML;
document.write(txt);
</script>
XML DOM:
<script type="text/javascript" src="/example/xdom/loadxmldoc.js"></script>
<script type="text/javascript">
xmlDoc=loadXMLDoc("/example/xdom/books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
txt=x.nodeValue;
document.write(txt);
</script>