标签:
DOM(文档对象模型),猫叔了一个层次化的节点树
一、DOM NODE相关公共属性与方法
DOM中所有节点都实现了NODE接口,该接口的公共属性和方法如下:
1.节点基本属性
1)NodeType 节点类型,利用12个数值来表示。1代表Element,2代表attribute,3代表Text...
2) NodeName与NodeValue 这两个属性的值完全取决于特定的节点类型
2.节点关系相关属性
I.childNodes属性,返回一个NodeList对象,这是一个有生命,会呼吸的对象,能够实时,动态的反映节点结构。具有length属性,也可以利用方括号或者item()访问其中的节点。
II,parentNode属性,previousSibling属性,nextSibling属性,firstChild属性,lastChild属性。
IV,ownerDocument属性,该属性指向整个文档的文档节点Document.
3.操作节点相关方法
hasChildNodes()方法
1)appendChild()放回新增的节点
2)insertBefore()
3)replaceChild()
4)removeChild()
5)cloneNode()
6)normalize(),其 作用在于处理文档树中相邻的文本节点
4,查找节点的相关方法
1)getElementById() 返回元素,如果调用者是document,那么就在全文档范围内查找,如果是父元素,那么就在其后辈元素中查找
2)getElementsByTagsName() 返回NodeList,其他同上
5,补充
虽然DOM为操作节点提供了丰富的方法,但是在需要给文档插入大量新html标记的情况下,通过DOM仍然非常麻烦,因为不仅要创建一系列的DOM节点,还要小心地按照正确的顺序插入。因此DOM扩展中定义了一下属性:
1.innerHTML属性 在读模式下,innerHTML返回与调用元素的所有子节点对应的html标记。在写模式下,innerHTML会根据制定的值创建新的DOM树,然后用这个DOM树替换掉原来元素的所有子节点。
2)outerHTML属性 在读模式下,innerHTML返回与调用元素的所有子节点对应的html标记。在写模式下,innerHTML会根据制定的值创建新的DOM树,然后用这个DOM树完全替换掉原来元素。
二、document节点类型
其nodeType为9,nodeName为document,nodeValue为null
1.特有属性
1)docType属性,指向DocumentType子节点
2)documentElement属性,指向html元素
3)body属性,指向body元素
4)title属性,指向文档标题
5)url,domain,referer属性,和http头部的对象字段取值相同
2,特有方法
1)getElementsByName()在获取单元框选中值的时候很有用
2)write(),writeln()用于页面的输出流;
3)open(),close()用于打开和关闭输出流,如果是在页面加载期间使用write(),writeln(),则不需要用到上述两个方法
4)createElement()方法 创建element类型的节点
5)createTextNode()方法,创建Text类型的节点,接受一个参数,为要插入节点中的文本,需要注意的是,作为参数的文本将按照html或者xml的格式进行编码
6)createAttributeNode()方法,创建特性节点
三、Elemment类型
nodeType值为1,nodeName为标签名,nodeValue为null
1,特有属性
1)tagName属性 和 nodeName的返回值相同
2)id属性
3)title属性
4)className属性
5)attributes 除非要遍历元素的所有attribute,否则这个属性用的不多
6)style属性,如style.backGround 等,注意的是,这只能获取html代码中内嵌的样式,对于<style>标签中设置的样式,以及外联样式表中的样式,是没有办法获取的。
2,特有方法
1)getAttribute(),setAttribute()和removeAttribute()
四、Text类型
NodeType为3,NodeName为#text,nodeValue为节点所包含的文本
1,特有属性
1)data属性,和nodeValue的返回值相同。可以通过appendData(),deleteData(),insertData(offset,text),replaceData(offset,count,text),substringData(offset,count)等方法进行操作
2)length属性,返回文本中字符数目
备注:要访问Element元素中的文本,利用
div.firstChild.data来访问。或者div.childNodes[0].nodeValue来访问
五、attr类型
nodeType为1,nodeName为特性名称,nodeValue为特性的值。尽管他们也是节点,但特性并不被认为是dom文档树的一部分。通常使用getAttribute(),setAttribute(),removeAttribute()进行操作
最后:
需要注意的是,上述是基本的dom方法,随着前端技术的发展,目前dom也在不断改进,如继承了目前只有类库才提供的选择符方法,html5的data数据操作等。
标签:
原文地址:http://www.cnblogs.com/bobodeboke/p/4654970.html