初学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-Jquery简介 入门了解篇
Nov 25 Javascript
JS获取计算机mac地址以及IP的实现方法
Jan 08 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
Jan 25 Javascript
JS中将多个逗号替换为一个逗号的实现代码
Jun 23 Javascript
JavaScript中使用Async实现异步控制
Aug 15 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
Aug 17 Javascript
浅谈Vue.nextTick 的实现方法
Oct 25 Javascript
微信小程序WebSocket实现聊天对话功能
Jul 06 Javascript
Vuex的初探与实战小结
Nov 26 Javascript
vue中添加与删除关键字搜索功能
Oct 12 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
Feb 11 Javascript
jquery绑定事件 bind和on的用法与区别分析
May 22 jQuery
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中的类-什么叫类
2006/11/20 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
获取客户端电脑日期时间js代码(jquery)
2012/09/12 Javascript
jQuery计算textarea中文字数(剩余个数)的小程序
2013/11/28 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
jquery的attr方法禁用表单元素禁用输入内容
2014/06/23 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
Bootstrap零基础学习第一课之模板
2016/07/18 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
2019/10/24 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
2015/04/01 Python
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
2016/07/01 Python
Python Paramiko模块的安装与使用详解
2016/11/18 Python
python画折线图的程序
2018/07/26 Python
python验证码图片处理(二值化)
2019/11/01 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
后端开发使用pycharm的技巧(推荐)
2020/03/27 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
Python如何定义接口和抽象类
2020/07/28 Python
pycharm + django跨域无提示的解决方法
2020/12/06 Python
CSS3实战第一波 让我们尽情的圆角吧
2010/08/27 HTML / CSS
教你使用Canvas处理图片的方法
2017/11/28 HTML / CSS
优秀党员主要事迹
2014/01/19 职场文书
学生会干部自荐信
2014/02/04 职场文书
自我鉴定标准格式
2014/03/19 职场文书
小学生教师节演讲稿
2014/09/03 职场文书
研究生导师推荐信
2014/09/06 职场文书
买房协议书范本
2014/10/23 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书