初学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 相关文章推荐
某页码显示的helper 少量调整,另附js版
Sep 12 Javascript
js中的布尔运算符使用介绍
Nov 20 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
Jul 27 Javascript
javascript 小数乘法结果错误的处理方法
Jul 28 Javascript
jQuery grep()方法详解及实例代码
Oct 30 Javascript
JS 实现导航菜单中的二级下拉菜单的几种方式
Oct 31 Javascript
AngularJS表格样式简单设置方法示例
Mar 03 Javascript
详解Vue组件之间的数据通信实例
Jun 17 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
Jul 05 Javascript
JS监控关闭浏览器操作的实例详解
Sep 12 Javascript
JS实现二维数组横纵列转置的方法
Apr 17 Javascript
详解vue如何使用rules对表单字段进行校验
Oct 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生成word文档的三种实现方式
2016/11/14 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
JQuery 学习笔记 选择器之六
2009/07/23 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
js函数名与form表单元素同名冲突的问题
2014/03/07 Javascript
js判断浏览器类型及设备(移动页面开发)
2015/07/30 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
使用node.js对音视频文件加密的实例代码
2017/08/30 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
Vue中的Vux配置指南
2017/12/08 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
2017/12/25 Javascript
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
Vue中多个元素、组件的过渡及列表过渡的方法示例
2019/02/13 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
layui下拉框获取下拉值(select)的例子
2019/09/10 Javascript
让Python更加充分的使用Sqlite3
2017/12/11 Python
TensorFlow实现创建分类器
2018/02/06 Python
python数字图像处理之骨架提取与分水岭算法
2018/04/27 Python
详解Python字符串切片
2019/05/20 Python
浅谈Pandas Series 和 Numpy array中的相同点
2019/06/28 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
python logging模块的使用
2020/09/07 Python
pycharm专业版远程登录服务器的详细教程
2020/09/15 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
DJI全球:DJI Global
2021/03/15 全球购物
JAVA程序员面试题
2012/10/03 面试题
银行毕业实习自我鉴定
2013/09/19 职场文书
医学求职信
2014/05/28 职场文书
娱乐节目策划方案
2014/06/10 职场文书
环卫工作个人总结
2015/03/04 职场文书
Mysql排序的特性详情
2021/11/01 MySQL
angular异步验证器防抖实例详解
2022/03/31 Javascript