1、常用的操作DOM节点方法:
appendChild()
父节点调用此方法,传入的新节点,将插入到最后一个节点的后面。
var returnedNode = someNode.appendChild(newNode);
alert(returnedNode == newNode); //true
alert(someNode.lastChild == newNode); //true
insertBefore()
父节点调用此方法,接受两个参数:要插入的节点和参照的节点,插入节点后,插入的新节点会作为参照节点的兄弟节点,在参照节点的前一个展示。如果参照节点是null,则和appendChild()方法一样,插入到最后一个。
returnedNode = someNode.insertBefore(newNode, null);
alert(newNode == someNode.lastChild); //true
var returnedNode = someNode.insertBefore(newNode, someNode.firstChild);
alert(returnedNode == newNode); //true
alert(newNode == someNode.firstChild); //true
returnedNode = someNode.insertBefore(newNode, someNode.lastChild);
alert(newNode == someNode.childNodes[someNode.childNodes.length-2]); //true
replaceChild()
替换节点,此方法接收两个参数:新节点和要替换的节点,返回要替换的节点。
var returnedNode = someNode.replaceChild(newNode, someNode.firstChild);
returnedNode = someNode.replaceChild(newNode, someNode.lastChild);
removeChild()
移除某一个节点,传入要移除的节点。
var formerFirstChild = someNode.removeChild(someNode.firstChild);
var formerLastChild = someNode.removeChild(someNode.lastChild);
以上四个方法,都是操作的某个节点的字节点,所以要先获取到父节点,然后父节点调用方法,操作其子节点。
克隆节点的方法
cloneNode()
此方法接受一个布尔值的参数,true表示深复制,复制整个节点树及其子节点,false表示浅复制,仅复制当前节点本身。
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
//假设以上节点保存在变量myList中
var deepList = myList.cloneNode(true);
alert(deepList.childNodes.length); //3(IE<9)或7(其他浏览器)
var shallowList = myList.cloneNode(false);
alert(shallowList.childNodes.length);
上面的例子中,deepList中保存了mList执行深复制拷贝的节点,所有将其子节点一并全部复制;而shallowList是执行浅复制拷贝的节点,只复制了ul本身,所以其childNodes长度为0。