一、节点类型
最常见节点类型有三类:
元素节点 Node.ELEMENT_NODE nodeType=1
属性节点 Node.ATTRIBUTE_NODE nodeType=2
文本节点 Node.TEXT_NODE nodeType=3
二、获取元素节点
document.getElementById(id);
nodeObject.getElementsByTagName(name);
三、操作属性节点
elementNode.getAttribute(name)
elementNode.setAttribute(name,value)
elementNode.removeAttribute(name)
四、创建元素节点
document.createElement(name)
五、添加节点
parentNodeObject.appendChild(nodeObject) 向节点的子节点列表的结尾添加新的子节点
parentNodeObject.insertBefore(newchild,refchild) 在已有的子节点前插入一个新的子节点
五、节点遍历(下列属性除parentNode,都可能会指向非元素节点)
nodeObject.childNodes 返回指定节点的子节点的节点列表(不含子节点的子节点)
nodeObject.parentNode 返回某节点的父节点
nodeObject.firstChild 返回指定节点的首个子节点
nodeObject.nextSibling 返回某个元素之后紧跟的元素(处于同一树层级中)
nodeObject.previousSibling 返回某节点之前紧跟的节点(处于同一树层级)
DEMO
window.onload = function(){
var container = document.getElementById('container');
var ul = document.createElement('ul'); //创建一个ul节点
ul.setAttribute('id', 'cul'); //设置节点属性
ul.className = 'addul'; //与setSttribute方法作用相同
ul.innerHTML = '<li>one</li><li>two</li><li>three</li><li>four</li>'; //为ul添加子节点
ulc = ul.childNodes; //获取ul子节点列表
var li = ulc[0]; //获取第一个子节点,在此同 var li = ul.firstChild;注意判断节点类型
while(li != null){
li.title = li.innerHTML;
li = li.nextSibling; //将li指向其下一个兄弟节点
}
var insertLi = document.createElement('li'); //创建一个li节点
insertLi.innerHTML = 'insertLi';
ul.insertBefore(insertLi, ulc[2]); //在ul的第三个子节点前插入新建的li节点
container.appendChild(ul); //将节点ul添加到dom树中
var ulcl = ul.getElementsByTagName('li'); //获取ul下tagName为li的节点
for(var i = 0; i < ulcl.length; i++){
console.log('ulcl[' + i + ']: ' + ulcl[i].innerHTML);
}
}
相关链接: