初学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 相关文章推荐
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
Feb 03 Javascript
在页面加载完成后通过jquery给多个span赋值
May 21 Javascript
Javascript原型链和原型的一个误区
Oct 22 Javascript
text-align:justify实现文本两端对齐 兼容IE
Aug 19 Javascript
JS字符串按逗号和回车分隔的方法
Apr 25 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
May 17 jQuery
js案例之鼠标跟随jquery版(实例讲解)
Jul 21 jQuery
vue.js的手脚架vue-cli项目搭建的步骤
Aug 30 Javascript
Three.js实现浏览器变动时进行自适应的方法
Sep 26 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
Jun 07 Javascript
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
May 14 Javascript
vue-element-admin项目导入和导出的实现
May 21 Vue.js
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 获取一个月第一天与最后一天的代码
2010/05/16 PHP
mcrypt启用 加密以及解密过程详细解析
2013/08/07 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
php实现简单的语法高亮函数实例分析
2015/04/27 PHP
JQuery1.6 使用方法三
2011/11/23 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
2013/04/15 Javascript
在jQuery中 常用的选择器介绍
2013/04/16 Javascript
javascript不可用的问题探究
2013/10/01 Javascript
javascript鼠标右键菜单自定义效果
2020/12/08 Javascript
Avalon中文长字符截取、关键字符隐藏、自定义过滤器
2016/05/18 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
vue移动端轻量级的轮播组件实现代码
2018/07/12 Javascript
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
Python JSON格式数据的提取和保存的实现
2019/03/22 Python
三步实现Django Paginator分页的方法
2019/06/11 Python
python读出当前时间精度到秒的代码
2019/07/05 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
解决django-xadmin列表页filter关联对象搜索问题
2019/11/15 Python
Python continue语句实例用法
2020/02/06 Python
关于Tensorflow 模型持久化详解
2020/02/12 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
2020/02/26 Python
Python plt 利用subplot 实现在一张画布同时画多张图
2021/02/26 Python
CSS3动画和HTML5新特性详解
2020/08/31 HTML / CSS
台湾良兴购物网:EcLife
2019/12/01 全球购物
个人简历中的自我评价范例
2013/10/29 职场文书
关于迟到的检讨书
2014/01/26 职场文书
交通事故赔偿协议书范本
2014/04/15 职场文书
党员批评与自我批评范文
2014/09/23 职场文书
教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
中班上学期个人总结
2015/02/12 职场文书
综合素质评价个性发展自我评价
2015/03/06 职场文书
个人年终总结结尾
2015/03/06 职场文书
升学宴家长致辞
2015/07/27 职场文书
Python中rapidjson参数校验实现
2021/07/25 Python
台式电脑蓝牙适配器怎么安装?台式电脑蓝牙适配器安装教程
2022/04/08 数码科技