`

JavaScript之appendChild、insertBefore和insertAfter

阅读更多
这几天需要用到对HTML节点元素的删/插操作,由于用到insertBefore方法的时候遇到了一些麻烦,现在作为知识的整理,分别对appendChild、insertBefore和insertAfter做个总结
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来插入新的节点前提是,其兄弟节点必须有共同的父节点

转载请注明出处[http://samlin.cnblogs.com/]
分享到:
评论

相关推荐

    JavaScript之appendChild、insertBefore和insertAfter使用说明

    几天需要用到对HTML节点元素的删/插操作,由于用到insertBefore方法的时候遇到了一些麻烦,现在作为知识的整理,分别对appendChild、insertBefore和insertAfter做个总结

    js中AppendChild与insertBefore的用法详细解析.docx

    JavaScript 中的 AppendChild 和 InsertBefore 用法详细解析 在 JavaScript 中,appendChild 和 insertBefore 是两个常用的方法,用于在 DOM 中插入新的节点。但是,很多开发者对这两个方法的使用和区别不是很清楚...

    js中AppendChild与insertBefore的用法详细解析

    首先,让我们深入探讨JavaScript中非常重要的DOM操作方法:appendChild和insertBefore。 appendChild方法用于将一个节点添加到指定节点的子节点列表的末尾。它的使用非常直接,接受一个参数newChild,代表即将添加...

    JavaScript缺少insertAfter解决方案

    总结来说,虽然DOM标准没有提供`insertAfter()`方法,但我们可以通过组合现有的方法,例如`insertBefore()`和`appendChild()`,以及通过编程判断目标元素位置,来实现这一功能。这样的方法不仅能够满足开发中的特定...

    javascript insertAfter()定义与用法示例

    不过需要强调的是,虽然在JavaScript中没有内置的insertAfter()方法,但是通过现有的DOM操作API,如appendChild()和insertBefore()等,我们可以实现类似的功能。这些知识点不仅对于理解文档中的示例代码至关重要,也...

    Javascript insertAfter() 实现函数代码

    在使用jQuery时,我们可以直接调用`insertAfter()`方法来进行元素的插入操作,但理解原生JavaScript实现的方法原理对于我们理解DOM操作以及调试和维护代码都是非常有帮助的。 此外,在使用上述函数时,还应注意以下...

    JavaScript节点.pdf

    在这个讨论中,我们将深入理解JavaScript中的DOM操作,特别是`insertAfter()`函数,这是一个非标准但非常实用的方法,用于在已存在元素之后插入新的元素。 `insertAfter()`函数,如文件描述所示,是JavaScript标准...

    javascript DOM笔记 1

    然后,你可以使用`appendChild`、`insertBefore`或`insertAfter`方法将这个新元素添加到DOM树中。`appendChild`会将指定的节点添加到当前节点的末尾,而`insertBefore`则允许你在特定的现有子节点之前插入新节点。`...

    jquery和javascript的区别(常用方法比较)

    至于插入新元素,`JavaScript` 的 `insertBefore()` 方法需要指定目标元素作为参数,而 `jQuery` 提供了 `after()`, `insertAfter()`, `before()`, `insertBefore()` 四个方法,操作起来更为直观。 除了以上提到的...

    使用insertAfter()方法在现有元素后添加一个新元素

    在JavaScript中,DOM操作是构建动态网页的关键技术之一。`insertAfter()`方法是一个非常实用的函数,用于在已有的DOM元素之后插入新的元素。虽然JavaScript的原生DOM API并未提供这个方法,但我们可以自定义一个函数...

    一些常用且实用的原生JavaScript函数.docx

    JavaScript原生没有`insertAfter`,但可以通过`insertBefore`实现: ```javascript function insertAfter(newChild, refChild) { var parElem = refChild.parentNode; if (parElem.lastChild == refChild) { ...

    JavaScript利用HTML DOM进行文档操作的方法_.docx

    - `insertAfter()`:在指定子节点之后插入新节点。 - `setAttributeNode()`:为当前元素节点设置属性节点。 #### 示例代码 下面是一个使用 JavaScript 创建并添加节点的示例: ```javascript function ...

    juqery 学习之五 文档处理 插入

    5. **insertAfter(target)**: 类似于`insertBefore()`, `insertAfter()`方法将每个匹配的元素插入到另一个指定元素之后。这可以帮助在现有元素后创建新的内容。 这些jQuery方法极大地简化了DOM操作,使开发者能够...

    javascript拓展DOM操作 prependChild insertAfert

    需要注意的是,如果在文档中已经存在节点,那么调用这些方法(`appendChild()`、`insertBefore()`、自定义的`prependChild()`和`insertAfter()`)将会从当前位置将该节点移动到新位置。所以,这些方法不仅仅添加节点...

    jQuery和JavaScript节点插入元素的方法对比

    `insertAfter()`和`insertBefore()`是`after()`和`before()`方法的对应方式,它们以不同的方式实现相同的插入效果,具体是将匹配的元素插入到目标元素集合的前面或后面。 需要注意的是,`appendTo()`, `prependTo()...

    JavaScript常用对象参考

    ### JavaScript常用对象参考知识点 ...这些知识点涵盖了JavaScript中最常用的对象及其方法和属性,对于理解和使用JavaScript来说至关重要。通过掌握这些基本概念,开发者能够更有效地编写和调试代码。

    14jQueryDOM节点操作.docx

    - `insertAfter()`和`insertBefore()`与`after()`和`before()`类似,但它们接收元素选择器作为参数,将内容插入到指定元素的前后: ```javascript $("这是新添加的div</div>").insertAfter("#container"); $(...

    JS实现添加,替换,删除节点元素的方法

    本文将深入探讨如何使用JavaScript来添加、替换和删除节点元素,从而达到动态修改网页内容的目的。 首先,要理解DOM树的概念。DOM将HTML文档建模为树结构,其中每个HTML元素都是树中的一个节点。JavaScript提供了...

Global site tag (gtag.js) - Google Analytics