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 相关文章推荐
在图片上显示左右箭头类似翻页的代码
Mar 04 Javascript
使用jQuery和PHP实现类似360功能开关效果
Feb 12 Javascript
JavaScript 开发工具webstrom使用指南
Dec 09 Javascript
Three.js学习之网格
Aug 10 Javascript
Bootstrap基本插件学习笔记之标签切换(17)
Dec 08 Javascript
angular学习之从零搭建一个angular4.0项目
Jul 10 Javascript
JS中touchstart事件与click事件冲突的解决方法
Mar 12 Javascript
浅谈Node.js 中间件模式
Jun 12 Javascript
JS实现根据指定值删除数组中的元素操作示例
Aug 02 Javascript
Vue中保存数据到磁盘文件的方法
Sep 06 Javascript
基于脚手架创建Vue项目实现步骤详解
Aug 03 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
Sep 10 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基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
2015/11/15 PHP
jquery+thinkphp实现跨域抓取数据的方法
2016/10/15 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
javascript 时间比较实现代码
2009/10/28 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
2018/07/07 Javascript
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
[04:44]DOTA2 2017全国高校联赛视频回顾
2017/08/21 DOTA
[01:20]2018DOTA2亚洲邀请赛总决赛战队Mineski晋级之路
2018/04/07 DOTA
python如何实现内容写在图片上
2018/03/23 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
对Python2与Python3中__bool__方法的差异详解
2018/11/01 Python
python的set处理二维数组转一维数组的方法示例
2019/05/31 Python
python实现文件的分割与合并
2019/08/29 Python
python 控制台单行刷新,多行刷新实例
2020/02/19 Python
python interpolate插值实例
2020/07/06 Python
Python configparser模块封装及构造配置文件
2020/08/07 Python
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
单位门卫岗位职责
2013/12/20 职场文书
应届毕业生个人求职自荐信
2014/01/06 职场文书
小学毕业家长寄语
2014/01/19 职场文书
社区服务活动小结
2014/07/08 职场文书
运动会演讲稿200字
2014/08/25 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
2014大四本科生自我鉴定总结
2014/10/04 职场文书
高中军训感想
2015/08/07 职场文书
工作建议书范文
2019/07/08 职场文书
z-index不起作用
2021/03/31 HTML / CSS
MySQL 8.0 之不可见列的基本操作
2021/05/20 MySQL
Java并发编程之Executor接口的使用
2021/06/21 Java/Android
Springboot/Springcloud项目集成redis进行存取的过程解析
2021/12/04 Redis