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


Posted in Javascript onJuly 04, 2011

首先 从定义来理解 这两个方法:
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()方法插入节点,是可以在子节点列表的任意位置。

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

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

Javascript 相关文章推荐
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
Jul 06 Javascript
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
Feb 03 Javascript
JavaScript中的对象与JSON
Jul 03 Javascript
JavaScript实现将文本框的值插入指定位置的方法
Aug 13 Javascript
javascript实现简单加载随机色方块
Dec 25 Javascript
javascript截图 jQuery插件imgAreaSelect使用详解
May 04 Javascript
jquery+ajax+text文本框实现智能提示完整实例
Jul 09 Javascript
JavaScript实现form表单的多文件上传
Mar 27 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
Sep 19 Javascript
用Node编写RESTful API接口的示例代码
Jul 04 Javascript
js实现同一个页面,多个enter事件绑定的示例
Oct 10 Javascript
JS通用方法触发点击事件代码实例
Feb 17 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
Jul 04 #Javascript
js静态方法与实例方法分析
Jul 04 #Javascript
JavaScript 变量作用域分析
Jul 04 #Javascript
JavaScript XML和string相互转化实现代码
Jul 04 #Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
Jul 04 #Javascript
jQuery 对Select的操作备忘记录
Jul 04 #Javascript
javascript开发技术大全 第4章 直接量与字符集
Jul 03 #Javascript
You might like
php cout&amp;lt;&amp;lt;的一点看法
2010/01/24 PHP
php图片加中文水印实现代码分享
2012/10/31 PHP
php5.3 注意事项说明
2013/07/01 PHP
Linux系统下php获得系统分区信息的方法
2015/03/30 PHP
php微信公众号开发之快递查询
2018/10/20 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
input 高级限制级用法
2009/03/26 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
Javascript保存网页为图片借助于html2canvas库实现
2014/09/05 Javascript
JS返回iframe中frameBorder属性值的方法
2015/04/01 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
JS实现六位字符密码输入器功能
2016/08/19 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
2016/10/10 Javascript
详谈jQuery.load()和Jsp的include的区别
2017/04/12 jQuery
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
深入探究AngularJs之$scope对象(作用域)
2017/07/20 Javascript
javascript用rem来做响应式开发
2018/01/13 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
vue ssr 实现方式(学习笔记)
2019/01/18 Javascript
JavaScript this在函数中的指向及实例详解
2019/10/14 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
python基于multiprocessing的多进程创建方法
2015/06/04 Python
numpy中矩阵合并的实例
2018/06/15 Python
Python异常处理知识点总结
2019/02/18 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
Python爬取某平台短视频的方法
2021/02/08 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
电子信息毕业生自荐信
2013/11/16 职场文书
中学生运动会入场词
2014/02/12 职场文书
小学生演讲稿大全
2014/04/25 职场文书
乔迁之喜答谢词
2015/01/05 职场文书
楚门的世界观后感
2015/06/03 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android