2011-3-10 (JS-DOM)

来源:互联网 发布:淘宝美工视频教程全集 编辑:程序博客网 时间:2024/06/05 19:11

DOM是语言中立的一种API,其主要针对HTML和xml文档的一个API,用于访问和操作HTML和XML文档十分有用。

对于DOM1其将相关的XML和HTML描述成为层次化的节点树,我们主要利用JS来对节点树进行相应操作,改变文档的外观和结构。

DOM节点:

1. Node最基本的节点类型,所有的其他节点类型都继承它。

   1)主要属性:nodeType,nodeName,nodeValue,childNodes,parentNode

注:其中childNodes属性中保存了NodeList对象,它是一种类数组对象,不是Array的实例。

   NodeList中保存了一组有序的节点,并且可以动态的执行查询。

   我们可以通过Array.prototype.slice()方法转换成数组;

   如var arrayOfNodes = Array.prototype.slice.call(someNode.childNodes,0);

 

2. Document类型表示整个文档,document对象是Document的一个实例

注:getElementById(),getElementByTagName().namedItem().

 

3. Element类型节点表示文档中所有html或者xml元素,用来操作元素的相关内容和特性

注:getAttribute(),setAttribute(),removeAttribute(),createElement(),appendChild(),insertBefore(),replaceChild()

 

4. 其他节点类型,Text,Comment,文档类型,CDATA区域和文档片段。

 

对DOM的扩展,主要是innerHTML的应用,这个很重要。

因为DOM的操作是JS中开销最大的部分,所以要求是尽量减少对DOM的操作,理解DOM对性能的影响也是非常重要的工作。我们所熟知的

NodeList对象由于它实现的是动态的查询的功能,给我们带了很多方便但是同时也带来麻烦,因为开销的增加是要考虑的。