一、简介
DOM即(Document Object Model):文档对象模型,用来将标记型文档封装成对象,并将标记型文档中的所有内容(标签、文本、属性等)都封装成对象。即标记型文档的一种解析方式。因为封装为对象就可以对其中的属性和行为进行调用,以便于对这些文档及文档中的内容进行更方便的操作。
DOM解析方式:将标记型文档解析为一颗dom树,而树中的内容都封装为节点对象。
按照标签的层次关系体现出标签的所属,形成一个树状结构。所以我们将DOM解析文档形成的document对象称为dom树,而树中的标签以及文本甚至属性称为节点。这个节点也称为对象。标签通常也称为页面中的元素。
注意:这个DOM解析的好处是可以对树中的节点进行任意操作,如增删查改。但也有弊端:这种解析需要将标记型文档加载进内存。意味着如果文档体积很大时较为浪费空间。
二、另一种解析方式:SAX
是由一些组织定义的一种民间常用的解析方式,并不是w3c标准,而DOM是w3c的标准。
SAX的解析方式:基于事件驱动的解析。好处:获取数据的速度快。弊端:不遵从增删查改操作。
三、DOM三种模型
DOM level 1:将html文档封装成对象。
DOM level 2:在level1的基础上加入了新功能,比如解析名称空间。
DOM level 3:将xml文档封装成了对象。
四、DHTML:动态html
不是一门语言,而是多项技术综合体的简称,这些技术包括HTML、CSS、DOM、JavaScript。
四种技术(语言)在动态html中扮演的角色:
HTML:用标签封装数据。即负责提供标签,对数据进行封装,目的是便于对该标签中的数据进行操作。
CSS:对数据样式进行定义。即负责提供样式属性,对标签中的数据进行样式的定义。
DOM:将文档和标签等所有内容进行解析。即负责将标记型文档及文档中的内容进行解析。并封装成对象,在对象中定义了更多的属性和行为,便于对对象进行操作。
JS:对页面行为进行定义(页面动态效果)。即负责提供程序设计语言,对页面中的对象进行逻辑操作。
所以JavaScript是DHTML的主力编程语言。
五、BOM:Browser Object Model(浏览器对象模型)
这个模型方便于操作浏览器。浏览器对应的对象就是Window对象。
六、获取节点对象
DOM将标记型文档封装为了document对象,而文档中的内容封装成了节点对象。常见的节点对象有:标签、属性、文本。
获取节点对象的方法:
方式一:通过id获取:getElementByID();
1 <script type="text/javascript"> 2 function changeDiv(){ 3 //通过id获取div标签 4 var divNode = document.getElementById("divId"); 5 //操作该节点,如获取该节点的nodeName、nodeType、nodeValue 6 7 //获取并修改文本数据 8 divNode.innerHTML = "???????".fontcolor("red"); 9 } 10 </script> 11 <input type="button" value="点击查看效果" onclick="changeDiv()"/> 12 <div >这是一个div节点</div>