初学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 相关文章推荐
Javascript 陷阱 window全局对象
Nov 26 Javascript
JavaScript面向对象之静态与非静态类
Feb 03 Javascript
JavaScript中的细节分析
Jun 30 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
Feb 19 Javascript
jQuery的live()方法对hover事件的处理示例
Feb 27 Javascript
判断某个字符在一个字符串中是否存在的js代码
Feb 28 Javascript
DropDownList控件绑定数据源的三种方法
Dec 24 Javascript
微信小程序实现表单校验功能
Mar 30 Javascript
js实现ATM机存取款功能
Oct 27 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
Jul 31 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
Aug 04 Javascript
JS前端基于canvas给图片添加水印
Nov 11 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
理解PHP5中static和const关键字的区别
2007/03/19 PHP
PHP目录函数实现创建、读取目录教程实例
2011/01/13 PHP
php中设置多级目录session的问题
2011/08/08 PHP
thinkphp3.x中session方法的用法分析
2016/05/20 PHP
Yii2配置Nginx伪静态的方法
2017/05/05 PHP
Jquery 绑定时间实现代码
2011/05/03 Javascript
Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明介绍)
2013/07/09 Javascript
利用jQuery实现可输入搜索文字的下拉框
2013/10/23 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
JS简单实现登陆验证附效果图
2013/11/19 Javascript
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
node.js中的console.trace方法使用说明
2014/12/09 Javascript
nodejs实现HTTPS发起POST请求
2015/04/23 NodeJs
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
Node学习记录之cluster模块
2017/05/31 Javascript
javascript将list转换成树状结构的实例
2017/09/08 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
微信小程序自定义底部导航带跳转功能
2018/11/27 Javascript
微信小程序点击顶部导航栏切换样式代码实例
2019/11/12 Javascript
Javascript实现关闭广告效果
2021/01/29 Javascript
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
Python实现栈的方法
2015/05/26 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
Python Series从0开始索引的方法
2018/11/06 Python
python查询文件夹下excel的sheet名代码实例
2019/04/02 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
2019/05/18 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
2020/05/09 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
关于感恩的演讲稿400字
2014/08/26 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
golang中的空接口使用详解
2021/03/30 Python
如何在python中实现ECDSA你知道吗
2021/11/23 Python
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python