`
shirlly
  • 浏览: 1646445 次
  • 性别: Icon_minigender_2
  • 来自: 福州
社区版块
存档分类
最新评论

JavaScript之appendChild VS insertBefore

阅读更多
我们知道appendChild和insertBefore都有插入节点的功能。但在应用上,这两者之间还是有一些区别的。

  比如我们要在下面这个div中插入一个子节点P时:

<div id="test"><p id="x1">Node</p><p>Node</p></div>

我们可以这样写(测试某种情况时请将另外一种注释):

<script type="text/javascript">
var oTest = document.getElementById("test");
var newNode = document.createElement("p");
newNode.innerHTML = "This is a test";

//测试从这里开始
//appendChild方法:
oTest.appendChild(newNode);
//insertBefore方法:
oTest.insertBefore(newNode,null);
</script>

  通过以上的代码,可以测试到一个新的节点被创建到了节点div下,且该节点是div最后一个节点。(如要查看DOM,IE可以通过IE Developer Toolbar插件来查看,Firefox可以使用Firebug)

  很明显,通过这个例子,可以知道appendChildhild和insertBefore都可以进行插入节点的操作。

  在上面的例子中有这样一句代码:oTest.insertBefore(newNode,null) ,这里insertBefore有2个参数可以设置,第一个是和appendChild相同的,第二却是它特有的。它不仅可以为null,还可以为:

<script type="text/javascript">
var oTest = document.getElementById("test");
var refChild = document.getElementById("x1");
var newNode = document.createElement("p");
newNode.innerHTML = "This is a test";

oTest.insertBefore(newNode,refChild);
</script>

  这个例子将在x1节点前面插入一个新的节点

又或:

<script type="text/javascript">
var oTest = document.getElementById("test");
var refChild = document.getElementById("x1");
var newNode = document.createElement("p");
newNode.innerHTML = "This is a test";

oTest.insertBefore(newNode,refChild.nextSibling);
</script>

  这个例子将在x1节点的下一个节点前面插入一个新的节点

还可为:

<script type="text/javascript">
var oTest = document.getElementById("test");
var newNode = document.createElement("p");
newNode.innerHTML = "This is a test";

oTest.insertBefore(newNode,oTest.childNodes[0]); 
</script>

  这个例子将在第一子节点前面插入一个新的节点,也可以通过改变childNodes[0,1,...]来在其它位置插入新的节点

  由于可见insertBefore()方法的特性是在已有的子节点前面插入新的节点,但例一中使用insertBefore()方法也可以在子节点列表末插入新节点的。两种情况结合起来,发现insertBefore()方法插入节点,是可以在子节点列表的任意位置。

  从这几个例子中得出:

  appendChild() 方法在节点的子节点列表末添加新的子节点。

  insertBefore() 方法在节点的子节点列表任意位置插入新的节点。



转自:该文转自http://blog.doyoe.com/article/174.htm,作者:飘零雾雨
分享到:
评论

相关推荐

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

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

    JavaScript之appendChild、insertBefore和insertAfter使用说明

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

    js AppendChild与insertBefore用法详细对比

    总结来说,appendChild()与insertBefore()都是JavaScript中用于添加DOM节点的重要方法。appendChild()简单易用,适用于在子节点列表末尾添加节点。而insertBefore()更为灵活,能够在列表中的任意位置插入节点。在...

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

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

    JavaScript:createElement和insertBefore

    obj = document.createElement(tag)创建一个标签,oParent.appendChild(obj)和oParent.insertBefore(obj,element)都是由要插入的标签的父节点调用,appendChild将创建的元素依次加在后面,而insertBefore则可以将...

    初学js插入节点appendChild insertBefore使用方法

    在DOM操作中,经常会需要向页面中添加新的元素节点,这时就可以使用appendChild和insertBefore两个方法。本文将详细介绍这两个方法的使用场景、语法以及它们之间的差异。 ### appendChild()方法 appendChild()方法...

    javascript使用appendChild追加节点实例

    在前端开发中,JavaScript是实现动态页面交互的核心语言之一。利用JavaScript,我们可以操作DOM(文档对象模型)来改变页面上的元素,而appendchild是其中常用的DOM操作方法,用于在指定父节点的子节点列表的末尾...

    appendChild() 或 insertBefore()使用与区别介绍

    总的来说,`appendChild()` 和 `insertBefore()` 是JavaScript DOM操作中的基础工具,它们帮助开发者动态构建和修改页面内容,为网页带来丰富的交互性和动态性。理解和熟练使用这两个方法对于任何前端开发者来说都是...

    经典之作javascript dom编程艺术源码

    `appendChild`用于在元素末尾添加子节点,`insertBefore`则可在指定子节点前插入新节点,`replaceChild`则替换已有子节点。 4. **属性操作**:`element.getAttribute()`用来获取元素属性值,`element.setAttribute...

    javascriptjs创建节点

    需要注意的是,使用 createElement() 创建的节点不会自动添加到文档中,需要使用 appendChild() 或 insertBefore() 方法将其添加到文档中。 createTextNode() 方法 createTextNode() 方法用于创建一个新的文本节点...

    JavaScript DOM资料 网页制作完全手册

    - 操作DOM主要涉及节点的选择(如getElementById、getElementsByTagname等)、创建(createElement)、插入(appendChild、insertBefore)、删除(removeChild)等方法。 2. **HTML**: - HTML是超文本标记语言,...

    JavaScriptDOM编程艺术(第2版)PDF版本下载.txt

    - **插入节点**:使用`appendChild`、`insertBefore`等方法将新创建的节点插入到文档中。 - **删除节点**:使用`removeChild`方法来移除文档中的某个节点。 - **替换节点**:使用`replaceChild`方法来替换文档中的一...

    JavaScript开发技术大全

    例如,getElementById、getElementsByClassName和querySelector等函数用于选择特定元素,innerHTML和textContent属性用于读取和改变元素内容,而appendChild和insertBefore等方法则用于动态地创建和组织文档结构。...

    Javascript学习第一季--Javascript&nbsp;DOM&nbsp;总结.doc

    新创建的元素不会自动添加到文档中,需通过 `appendChild()`, `insertBefore()` 或 `replaceChild()` 方法将其插入。例如: ```javascript document.body.appendChild(a); ``` `createTextNode()` 用于创建文本...

    javascript_日历源码

    创建日历,你需要用到`document.createElement`来创建新的HTML元素,如`&lt;table&gt;`、`&lt;tr&gt;`、`&lt;td&gt;`等,然后利用`appendChild`或`insertBefore`方法将它们插入到页面的适当位置。 2. **事件处理**:日历可能需要响应...

    JavaScript很全的示例,包你成为js高手

    JavaScript通过DOM(文档对象模型)接口来操作HTML元素,动态生成层通常涉及到`document.createElement()`方法创建新元素,`appendChild()`或`insertBefore()`方法将其插入到页面的指定位置,以及`innerHTML`属性...

    javascript 基础教程 html版的

    3. DOM操作包括创建新元素(`document.createElement`),插入元素(`appendChild`、`insertBefore`),删除元素(`removeChild`)以及修改元素属性(`innerHTML`、`textContent`等)。 事件处理: 1. 事件是用户与...

Global site tag (gtag.js) - Google Analytics