DOM 节点操作
DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口)。
一、浏览器把HTML解析成文档树,文档树是一个以document为根节点的,由一个个节点组成的树。
二、节点可以主要分为以下类型:
元素节点.nodeType==ELEMENT_NODE(1);
属性节点.nodeType==ATTRIBUTE_NODE(2);
文本节点.nodeType==TEXT_NODE(3);
nodeType是每个节点的属性,表明节点的类型。
三、节点的属性
nodeName和nodeValue
if(someNode.nodeType == 1){ name=someNode.nodeName; //nodeName的值是元素的标签名 value=someNode.nodeValue; //对元素节点,nodeValue的值始终为null }
四、节点关系
.childNodes
var nodes=someNode.childNodes nodes是一个类似数组的对象,但并不是数组,其是一个动态集合,随着文档节点的变化而变化。
把nodes转换成数组的方法:
function convertToArray(nodes){ var array=new Array(); try{ array=Array.prototype.slice.calll(nodes,0); //对IE8及之下没有作用 }catch(ex){ for(var i=0;i<nodes.length;i++){ array.push(nodes[i]); } } return array; }
.parentNode
.firstChild
.lastChild
.prviousSibling
.nextSibling
if (someNode.nextSlibling===null){
alert("Last node in the parent's childNodes list");
}
if (someNode.previousSlibling===null){
alert("First node in the parent's childNodes list");
}
元素节点的遍历(不支持低版本IE)(可编写代码兼容)
node.firstElementChild
.lastElementChild
.nextElementSibling
.previousElementSibling
五、节点操作
.appendChild .createChild .removeChild .innerHTML