DOM可以将任何Html或XML文档描绘成一个由多层节点构成的结构,节点分为多种类型,每个节点都有自己的特点,数据和方法。
**
Node类型:
**
每个节点都有一个nodeType属性,表明节点的类型,nodeName属性表示元素的标签名,nodeValue属性取决于节点类型。
每个节点都有一个childNodes属性,其中保存着一个NodeList数组对象,有length属性但不属于Array的实例,NodoList对象实际是基于DOM结构动态执行查询的结果。访问保存在NodeList中的节点方法:1.方括号;2.使用item()
var firstChild = someNode.childNodes[0];
var secondChild = someNode.childNodes.item(1);
var count = someNode.childNodes.length;
每一个节点都有一个parentNode属性,指向该节点的父节点。childNodes中得所有节点都具有同一个父节点,且每个节点相互之间都是同胞节点,可以通过previousSibling和nextSibling属性访问前一个和后一个兄弟结点。父节点firstChild和lastChild分别指向childNodes第一个和最后一个子节点。
someNode.firstChild=someNode.childNodes[0],
someNode.lastChild=someNode.childNodes[someNode.childNodes.length-1]。
hasChildNodes()方法判断是否存在子节点,存在返回true。
每个节点都有一个属性owerDocument,该属性指向整个文档的文档节点,如#document。
操作节点方法:
appendChild()接收一个参数,在末尾插入节点;
insertBefore(要插入的节点,参照节点),接受两个参数,在参照节点前插入要插入的节点;
replaceChild(要插入的节点,被替换的节点),接受两个参数。被替换的节点还在文档之内,但没有他的位置。
removeChild(),接收一个参数,要删除的节点。同上,被删除的节点还在文档之内,但没有他的位置。
normalize() 处理文本节点,在某个节点上调用这个方法,就会合并该节点子文本节点,并且删除空格文本节点。