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

 更新时间:2011年07月04日 23:24:21   作者:  
由于可见insertBefore()方法的特性是在已有的子节点前面插入新的节点但是两种情况结合起来发现insertBefore()方法插入节点,是可以在子节点列表的任意位置。
首先 从定义来理解 这两个方法:
appendChild() 方法:可向节点的子节点列表的末尾添加新的子节点。语法:appendChild(newchild)
insertBefore() 方法:可在已有的子节点前插入一个新的子节点。语法 :insertBefore(newchild,refchild)
相同之处:插入子节点
不同之处:实现原理方法不同。
     appendChild方法是在父级节点中的子节点的末尾添加新的节点(相对于父级节点 来说)。
     insertBefore 方法 是在已有的节点前添加新的节点(相对于子节点来说的)。
来看个这个简单的实例:在id为box-con 的末尾添加一个子节点div
复制代码 代码如下:

<div class="btns"><input type="button" value="插入元素" id="creatbtn"/></div>
<div id="box-one">
<p class="con2" id="p1">1</p>
<p class="con2" >2</p>
<p class="con2" >3</p>
</div>

复制代码 代码如下:

window.onload = function () {
var btn = document.getElementById("creatbtn");
btn.onclick = function() {
insertEle();
}
}
function insertEle() {
var oTest = document.getElementById("box-one");
var newNode = document.createElement("div");
newNode.innerHTML = " This is a newcon ";
//oTest.appendChild(newNode);
oTeset.insertBefore(newNode,null); // 这两种方法均可实现
}

这个insertBefore 的第一个参数 和appendChild的一样,都是那个新的节点变量,而insert第二个参数不仅可以为null 。也可以这样写呢
复制代码 代码如下:

function insertEle() {
var oTest = document.getElementById("box-one");
var newNode = document.createElement("div");
var reforeNode = document.getElementById("p1");
newNode.innerHTML = " This is a newcon ";
oTest.insertBefore(newNode,reforeNode); // 新建的元素节点插入到 id为p1的元素前面
}

或者
复制代码 代码如下:

function insertEle() {
var oTest = document.getElementById("box-one");
var newNode = document.createElement("div");
var reforeNode = document.getElementById("p1");
newNode.innerHTML = " This is a newcon ";
oTest.insertBefore(newNode,reforeNode.nextSibling);//新建的元素节点插入到 id为p1后面节点元素的 前面,
                              也就是说 插入id为P1节点元素的后面。
}

这里想说的是 nextSibling :某个元素之后紧跟的元素(处于同一树层级中)。

reforeNode.nextSibling :取得的是reforeNode对象的紧跟着的下一个节点。

previousSibling - 取得某节点的上一个同级节点

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

呵呵呵。。。有些方法不只是作用于定义的那些特性,只要 符合语法,结合一些属性总会有意想不到的收获。

作为初学者,我懂的不多,或许我的理解还很浅薄,有些可能理解错了,希望看到的能够给我提点下,我不求别的,我只希望在这里记录点点滴滴和吸取大家的建议 来促进我的成长。。。

相关文章

  • 了不起的11个JavaScript代码重构最佳实践小结

    了不起的11个JavaScript代码重构最佳实践小结

    这篇文章主要介绍了了不起的11个JavaScript代码重构最佳实践小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 微信小程序使用canvas的画图操作示例

    微信小程序使用canvas的画图操作示例

    这篇文章主要介绍了微信小程序使用canvas的画图操作,结合实例形式较为详细的分析了微信小城序基于canvas的画图操作相关实现技巧与操作注意事项,需要的朋友可以参考下
    2019-01-01
  • js 动态加载事件的几种方法总结

    js 动态加载事件的几种方法总结

    本篇文章主要是对js 动态加载事件的几种方法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • JS简单实用的倒计时效果实现代码

    JS简单实用的倒计时效果实现代码

    没有事研究了下倒计时的效果,因此自己练习了一下,需要的朋友可以参考下
    2012-08-08
  • js制作网站首页图片轮播特效代码

    js制作网站首页图片轮播特效代码

    这篇文章主要为大家详细介绍了js制作网站首页图片轮播特效代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • ES6中Set和Map用法实例详解

    ES6中Set和Map用法实例详解

    这篇文章主要介绍了ES6中Set和Map用法,结合实例形式详细分析了ES6中Set和Map的基本功能、原理、使用方法及操作注意事项,需要的朋友可以参考下
    2020-03-03
  • JS实现压缩上传图片base64长度功能

    JS实现压缩上传图片base64长度功能

    这篇文章主要介绍了js实现压缩上传图片base64长度功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • js获取checkbox值的方法

    js获取checkbox值的方法

    这篇文章主要介绍了js获取checkbox值的方法,涉及js针对节点的操作技巧,非常具有实用价值,需要的朋友可以参考下
    2015-01-01
  • JavaScript中的对象继承关系

    JavaScript中的对象继承关系

    这篇文章主要介绍了JavaScript中的对象继承关系的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-08-08
  • JS批量替换内容中关键词为超链接

    JS批量替换内容中关键词为超链接

    本文主要介绍了JS批量替换内容中关键词为超链接,避开已存在的链接和alt、title中的关键词的方法。下面跟着小编一起来看下吧
    2017-02-02

最新评论