JavaScript之appendChild、insertBefore和insertAfter使用说明


Posted in Javascript onDecember 30, 2010

appendChild定义
appendChild(newChild: Node) : Node
Appends a node to the childNodes array for the node.
Supported: IE 5.0+, Mozilla 1.0+, Netscape 6.0+, Safari 1.0+, Opera 7.0+
添加一个节点到指定的节点的子节点数组中,读起来好象有点拗口,简单地说就是将元素添加到指定的节点中
appendChild用法
target.appendChild(newChild)
newChild作为target的子节点插入最后的一子节点之后
appendChild例子

var newElement = document.Document.createElement('label'); 
newElement.Element.setAttribute('value', 'Username:'); 
var usernameText = document.Document.getElementById('username'); 
usernameText.appendChild(newElement);

insertBefore定义
The insertBefore() method inserts a new child node before an existing child node.
insertBefore() 方法的作用是:在现有的子节点前插入一个新的子节点
insertBefore用法
target.insertBefore(newChild,existingChild)
newChild作为target的子节点插入到existingChild节点之前
existingChild为可选项参数,当为null时其效果与appendChild一样

insertBefore例子

var oTest = document.getElementById("test"); 
var newNode = document.createElement("p"); 
newNode.innerHTML = "This is a test"; 
oTest.insertBefore(newNode,oTest.childNodes[0]);

好了那么有insertBefore的应该也有insertAfter吧?
好那我们来用Aptana编写一个例子吧,但Aptana的智能提示告诉我其实没有insertAfter这个方法
那么就自己定义一个罗:)
insertAfter定义
function insertAfter(newEl, targetEl) 
{ 
var parentEl = targetEl.parentNode; 
if(parentEl.lastChild == targetEl) 
{ 
parentEl.appendChild(newEl); 
}else 
{ 
parentEl.insertBefore(newEl,targetEl.nextSibling); 
} 
}

insertAfter用法与例子
var txtName = document.getElementById("txtName"); 
var htmlSpan = document.createElement("span"); 
htmlSpan.innerHTML = "This is a test"; 
insertAfter(htmlSpan,txtName);

将htmlSpan 作为txtName 的兄弟节点插入到txtName 节点之后

总结:
1、appendChild和insertBefore是做对节点的方法来使用的,而insertAfter只是自定义的一个函数
2、insertBefore相对于appendChild来说,比较灵活可以将新的节点插入到目标节点子节点数组中的任一位置。
3、使用appendChild和insertBefore来插入新的节点前提是,其兄弟节点必须有共同的父节点

Javascript 相关文章推荐
基于jquery实现的省市区级联无ajax
Sep 24 Javascript
javascript字符串替换及字符串分割示例代码
Dec 12 Javascript
node.js中的fs.chmod方法使用说明
Dec 18 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
Mar 13 Javascript
jquery小火箭返回顶部代码分享
Aug 19 Javascript
JS实现可点击展开与关闭的左侧广告代码
Sep 02 Javascript
JS实现黑色风格的网页TAB选项卡效果代码
Oct 09 Javascript
JavaScript:Date类型全面解析
May 19 Javascript
js注入 黑客之路必备!
Sep 14 Javascript
基于BootStrap的文本编辑器组件Summernote
Oct 27 Javascript
JS实现对json对象排序并删除id相同项功能示例
Apr 18 Javascript
JavaScript实现的DOM绘制柱状图效果示例
Aug 08 Javascript
Javascript事件热键兼容ie|firefox
Dec 30 #Javascript
某人初学javascript的时候写的学习笔记
Dec 30 #Javascript
Javascript延迟执行实现方法(setTimeout)
Dec 30 #Javascript
JavaScript的document对象和window对象详解
Dec 30 #Javascript
javascript hashtable 修正版 下载
Dec 30 #Javascript
javascript中运用闭包和自执行函数解决大量的全局变量问题
Dec 30 #Javascript
javascript中创建对象的三种常用方法
Dec 30 #Javascript
You might like
php 正则 过滤html 的超链接
2009/06/02 PHP
php array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
PHP生成网页快照 不用COM不用扩展.
2010/02/11 PHP
PHP数据类型之整数类型、浮点数的介绍
2013/04/28 PHP
php读取远程gzip压缩网页的方法
2014/12/29 PHP
PHP 反射(Reflection)使用实例
2015/05/12 PHP
php生成图片验证码
2015/06/09 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
2019/10/08 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
图片自动缩小 点击放大
2008/07/07 Javascript
jquery与google map api结合使用 控件,监听器
2010/03/04 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
Google 地图事件实例讲解
2016/08/06 Javascript
getElementById().innerHTML与getElementById().value的区别
2016/10/27 Javascript
Node.js中process模块常用的属性和方法
2016/12/13 Javascript
vue中component组件的props使用详解
2017/09/04 Javascript
jQuery+koa2实现简单的Ajax请求的示例
2018/03/06 jQuery
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
2018/07/31 jQuery
使用angular-cli webpack创建多个包的方法
2018/10/16 Javascript
electron + vue项目实现打印小票功能及实现代码
2018/11/25 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
vue鼠标悬停事件实例详解
2019/04/01 Javascript
BootstrapValidator验证用户名已存在(ajax)
2019/11/08 Javascript
微信小程序实现canvas分享朋友圈海报
2020/06/21 Javascript
python文本数据相似度的度量
2018/03/12 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
2019/01/23 Python
Python3.5多进程原理与用法实例分析
2019/04/05 Python
python 生成器和迭代器的原理解析
2019/10/12 Python
python paramiko远程服务器终端操作过程解析
2019/12/14 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
python numpy库np.percentile用法说明
2020/06/08 Python
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
人身损害赔偿协议书范本
2014/09/27 职场文书
工程质检员岗位职责
2015/04/08 职场文书
元旦联欢晚会主持词
2015/07/01 职场文书