跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

JavaScript之appendChild、insertBefore和insertAfter使用说明_javascript技巧

appendChild定义appendChild(newChild: Node) : Node Appends a node to the childNodes array for the node.

Supported: IE 5.0+, Mozilla 1.0+, Netscape 6.0+, Safari 1.0+, Opera 7.0+添加一个节点到指定的节点的子节点数组中,读起来好象有点拗口,简单地说就是将元素添加到指定的节点中appendChild用法target.appendChild(newChild) newChild作为target的子节点插入最后的一子节点之后appendChild例子复制代码代码如下:var newElement = document.Document.createElement('label');newElement.Element.setAttribute('value', 'Username:');var usernameText = document.Document.getElementById('username');usernameText.appendChild(newElement);insertBefore定义The insertBefore() method inserts a new child node before an existing child node.

insertBefore() 方法的作用是:在现有的子节点前插入一个新的子节点insertBefore用法target.insertBefore(newChild,existingChild) newChild作为target的子节点插入到existingChild节点之前existingChild为可选项参数,当为null时其效果与appendChild一样insertBefore例子复制代码代码如下:var oTest = document.getElementById("test");var newNode = document.createElement("p");newNode.innerHTML = "This is a test";oTest.insertBefore(newNode,oTest.childNodes[0]);好了那么有insertBefore的应该也有insertAfter吧?

好那我们来用Aptana编写一个例子吧,但Aptana的智能提示告诉我其实没有insertAfter这个方法那么就自己定义一个罗:) insertAfter定义复制代码代码如下:function insertAfter(newEl, targetEl){var parentEl = targetEl.parentNode;if(parentEl.lastChild == targetEl){parentEl.appendChild(newEl);}else{parentEl.insertBefore(newEl,targetEl.nextSibling);}}insertAfter用法与例子复制代码代码如下:var txtName = document.getElementById("txtName");var htmlSpan = document.createElement("span");htmlSpan.innerHTML = "This is a test";insertAfter(htmlSpan,txtName);将htmlSpan 作为txtName 的兄弟节点插入到txtName 节点之后

总结:

1、appendChild和insertBefore是做对节点的方法来使用的,而insertAfter只是自定义的一个函数2、insertBefore相对于appendChild来说,比较灵活可以将新的节点插入到目标节点子节点数组中的任一位置。

3、使用appendChild和insertBefore来插入新的节点前提是,其兄弟节点必须有共同的父节点

相关文章