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 相关文章推荐
ExtJS GridPanel 根据条件改变字体颜色
Mar 08 Javascript
用JS判断IE版本的代码 超管用!
Aug 09 Javascript
js读取注册表的键值示例
Sep 25 Javascript
Angular实现form自动布局
Jan 28 Javascript
深入理解ECMAScript的几个关键语句
Jun 01 Javascript
JS比较两个数值的大小实例
Nov 25 Javascript
十大热门的JavaScript框架和库
Mar 21 Javascript
JS脚本加载后执行相应回调函数的操作方法
Feb 28 Javascript
Angular6封装http请求的步骤详解
Aug 13 Javascript
js canvas实现红包照片效果
Aug 21 Javascript
微信小程序时间戳转日期的详解
Apr 30 Javascript
uploadify插件实现多个图片上传并预览
Sep 30 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中使用file_get_contents post数据代码例子
2015/02/13 PHP
ecshop 2.72如何修改后台访问地址
2015/03/03 PHP
php操作memcache缓存方法分享
2015/06/03 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
PHP 99乘法表的几种实现代码
2020/10/13 PHP
让焦点自动跳转
2006/07/01 Javascript
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
单击和双击事件的冲突处理示例代码
2014/04/03 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
js delete 用法(删除对象属性及变量)
2014/08/24 Javascript
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
js实现canvas图片与img图片的相互转换的示例
2017/08/31 Javascript
什么是Vue.js框架 为什么选择它?
2017/10/17 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
2018/06/07 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
2019/01/19 Javascript
pageGroup.js实现分页功能
2019/07/27 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
详解uniapp的全局变量实现方式
2021/01/11 Javascript
JavaScript 生成唯一ID的几种方式
2021/02/19 Javascript
Python编写百度贴吧的简单爬虫
2015/04/02 Python
详解Python中的__new__()方法的使用
2015/04/09 Python
理想高通滤波实现Python opencv示例
2019/01/30 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
2020/11/27 Python
python解压zip包中文乱码解决方法
2020/11/27 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
Python中的流程控制详解
2021/02/18 Python
CSS3实现渐变背景兼容问题
2020/05/06 HTML / CSS
马智宇结婚主持词
2014/04/01 职场文书
安全资料员岗位职责范本
2014/06/28 职场文书
2014群众路线学习笔记
2014/11/06 职场文书
机动车交通事故协议书
2015/01/29 职场文书
无罪辩护词范文
2015/05/21 职场文书