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显示从数据库取出时间转换JSON后的出现问题
Nov 20 Javascript
文本域光标操作的jQuery扩展分享
Mar 10 Javascript
html5+javascript制作简易画板附图
Apr 25 Javascript
javascript异步编程代码书写规范Promise学习笔记
Feb 11 Javascript
JavaScript让Textarea支持tab按键的方法
Jun 26 Javascript
jQuery实现的简单分页示例
Jun 01 Javascript
JS从数组中随机取出几个数组元素的方法
Aug 02 Javascript
js实现二级导航功能
Mar 03 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
Oct 31 Javascript
深入理解 webpack 文件打包机制(小结)
Jan 08 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
Jan 18 Javascript
Vue中多个元素、组件的过渡及列表过渡的方法示例
Feb 13 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
C/S和B/S两种架构区别与优缺点分析
2014/10/23 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
PHP获取用户客户端真实IP的解决方案
2016/10/10 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
JavaScript对象模型-执行模型
2008/04/28 Javascript
JS写的数字拼图小游戏代码[学习参考]
2008/10/29 Javascript
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
SOSO地图API使用(一)在地图上画圆实现思路与代码
2013/01/15 Javascript
document.createElement()用法
2013/03/13 Javascript
Ajax请求在数据量大的时候出现超时的解决方法
2014/02/27 Javascript
jQuery模拟点击A标记示例参考
2014/04/17 Javascript
用html+css+js实现的一个简单的图片切换特效
2014/05/28 Javascript
Javascript封装DOMContentLoaded事件实例
2014/06/12 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
2016/09/21 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
JavaScript中的一些实用小技巧总结
2019/04/07 Javascript
Vue3 源码导读(推荐)
2019/10/14 Javascript
使用webpack5从0到1搭建一个react项目的实现步骤
2020/12/16 Javascript
Python制作CSDN免积分下载器
2015/03/10 Python
Python注释详解
2016/06/01 Python
利用Python求阴影部分的面积实例代码
2018/12/05 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
python 实现控制鼠标键盘
2020/11/27 Python
python使用numpy中的size()函数实例用法详解
2021/01/29 Python
美国50岁以上单身人士约会平台:SilverSingles
2018/06/29 全球购物
最新奶茶店创业计划书
2014/01/25 职场文书
秋天的图画教学反思
2014/05/01 职场文书
教师党员承诺书2015
2015/01/21 职场文书
检讨书模板
2015/01/29 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
个人原因辞职信模板
2015/05/13 职场文书
2015年度校学生会工作总结报告
2015/05/23 职场文书
怒海潜将观后感
2015/06/11 职场文书
css实现两栏布局,左侧固定宽,右侧自适应的多种方法
2021/08/07 HTML / CSS