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 相关文章推荐
JS验证日期的格式YYYY-mm-dd 具体实现
Jun 29 Javascript
jQuery+PHP打造滑动开关效果
Dec 16 Javascript
node.js路径处理方法以及绝对路径详解
Mar 04 Javascript
javascript实现动态显示颜色块的报表效果
Apr 10 Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
Apr 11 jQuery
vuex与组件联合使用的方法
May 10 Javascript
vue.js使用v-if实现显示与隐藏功能示例
Jul 06 Javascript
js中位运算的运用实例分析
Dec 11 Javascript
JavaScript实现的联动菜单特效示例
Jul 08 Javascript
JavaScript字符串处理常见操作方法小结
Nov 15 Javascript
vue实现pdf文档在线预览功能
Nov 26 Javascript
JavaScript执行机制详细介绍
Dec 06 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
thinkphp如何获取客户端IP
2015/11/03 PHP
PHP 等比例缩放图片详解及实例代码
2016/09/18 PHP
php实现跨域提交form表单的方法【2种方法】
2016/10/17 PHP
PHP用户验证和标签推荐的简单使用
2016/10/31 PHP
用javascript动态调整iframe高度的方法
2007/03/06 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
js 自制滚动条的小例子
2013/03/16 Javascript
打印json对象的内容及JSON.stringify函数应用
2013/03/29 Javascript
javascript类型转换示例
2014/04/29 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
JavaScript实现的类字典插入或更新方法实例
2015/07/10 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
js记录点击某个按钮的次数-刷新次数为初始状态的实例
2017/02/15 Javascript
vue-resource 拦截器(interceptor)的使用详解
2017/07/04 Javascript
vue中的event bus非父子组件通信解析
2017/10/27 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
es6中比较有用的7个技巧小结
2019/07/12 Javascript
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
[06:53]DOTA2每周TOP10 精彩击杀集锦vol.3
2014/06/25 DOTA
Python常见数据结构详解
2014/07/24 Python
python处理文本文件并生成指定格式的文件
2014/07/31 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
Python使用正则表达式分割字符串的实现方法
2019/07/16 Python
Python: glob匹配文件的操作
2020/12/11 Python
美国购买汽车零件网站:Buy Auto Parts
2018/04/02 全球购物
美国花园雕像和家居装饰网上商店:Design Toscano
2019/03/09 全球购物
会计出纳岗位职责
2013/12/25 职场文书
幼儿园大班开学寄语
2014/08/02 职场文书
党员干部观看《周恩来四个昼夜》思想汇报
2014/09/10 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
篮球赛新闻稿
2015/07/17 职场文书
运动会新闻稿
2015/07/17 职场文书