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 相关文章推荐
animate动画示例(泪奔的小孩)及stop和delay的使用
May 06 Javascript
微信企业号开发之微信考勤Cookies的使用
Sep 11 Javascript
第九篇Bootstrap导航菜单创建步骤详解
Jun 21 Javascript
JS数组去掉重复数据只保留一条的实现代码
Aug 11 Javascript
解决Window10系统下Node安装报错的问题分析
Dec 13 Javascript
Angular下H5上传图片的方法(可多张上传)
Jan 09 Javascript
js实现下拉菜单效果
Mar 01 Javascript
微信小程序中显示html格式内容的方法
Apr 25 Javascript
jQuery实现的简单拖拽功能示例【测试可用】
Aug 14 jQuery
11个教程中不常被提及的JavaScript小技巧(推荐)
Apr 17 Javascript
JavaScript实现雪花飘落效果
Dec 27 Javascript
Vue+Flask实现图片传输功能
Apr 01 Vue.js
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文件上传主要代码讲解
2013/09/30 PHP
PHP实现货币换算的方法
2014/11/29 PHP
PHP session文件独占锁引起阻塞问题解决方法
2015/05/12 PHP
Thinkphp3.2实用篇之计算型验证码示例
2017/02/09 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
js 创建快捷方式的代码(fso)
2010/11/19 Javascript
script标签属性type与language使用选择
2012/12/02 Javascript
页面载入结束自动调用js函数示例
2013/09/23 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
2015/05/06 Javascript
jQuery自定义动画函数实例详解(附demo源码)
2015/12/10 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
2016/11/09 Javascript
Javascript中return的使用与闭包详解
2017/01/11 Javascript
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
2017/09/23 jQuery
解决vue组件中使用v-for出现告警问题及v for指令介绍
2017/11/11 Javascript
vue渲染时闪烁{{}}的问题及解决方法
2018/03/28 Javascript
了解ESlint和其相关操作小结
2018/05/21 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
2019/11/05 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
下载给定网页上图片的方法
2014/02/18 Python
python 创建弹出式菜单的实现代码
2017/07/11 Python
Python实现运行其他程序的四种方式实例分析
2017/08/17 Python
python爬虫实例详解
2018/06/19 Python
在python中以相同顺序shuffle两个list的方法
2018/12/13 Python
python的schedule定时任务模块二次封装方法
2019/02/19 Python
利用Vscode进行Python开发环境配置的步骤
2020/06/22 Python
python多线程爬取西刺代理的示例代码
2021/01/30 Python
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
新西兰航空中国官网:Air New Zealand China
2018/07/24 全球购物
公务员试用期满考核材料
2014/05/22 职场文书
个人求职信格式范文
2015/03/20 职场文书
如何用Navicat操作MySQL
2021/05/12 MySQL
Python OpenCV 图像平移的实现示例
2021/06/04 Python
MySQL高速缓存启动方法及参数详解(query_cache_size)
2021/07/01 MySQL