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 相关文章推荐
HTML Dom与Css控制方法
Oct 25 Javascript
广泛收集的jQuery拖放插件集合
Apr 09 Javascript
Jqgrid表格随窗口大小改变而改变的简单实例
Dec 28 Javascript
流量统计器如何鉴别C#:WebBrowser中伪造referer
Jan 07 Javascript
js实现点击文本框显示日期选择器特效代码分享
May 21 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
Nov 16 Javascript
JavaScript添加随滚动条滚动窗体的方法
Feb 23 Javascript
超详细的JS弹出窗口代码大全
Apr 18 Javascript
浅析Vue中method与computed的区别
Mar 06 Javascript
vue指令之表单控件绑定v-model v-model与v-bind结合使用
Apr 17 Javascript
vue内置组件keep-alive事件动态缓存实例
Oct 30 Javascript
JS数组方法some、every和find的使用详情
Oct 05 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
PL-880隐藏功能
2021/03/01 无线电
PHP eval函数使用介绍
2013/12/08 PHP
CI框架装载器Loader.php源码分析
2014/11/04 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
Flash图片上传组件 swfupload使用指南
2015/03/14 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
js中利用tagname和id获取元素的方法
2016/01/03 Javascript
jQuery中的ready函数与window.onload谁先执行
2016/06/21 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
ES6中的Promise代码详解
2017/10/09 Javascript
详解vue项目首页加载速度优化
2017/10/18 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
JavaScript实现简单进度条效果
2020/03/25 Javascript
[02:27]《DAC最前线》之附加赛征程
2015/01/29 DOTA
[00:34]TI7不朽珍藏III——纯金地穴编织者饰品展示
2017/07/15 DOTA
[01:03:22]LGD vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
matplotlib作图添加表格实例代码
2018/01/23 Python
对pandas数据判断是否为NaN值的方法详解
2018/11/06 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
CSS3关于z-index不生效问题的解决
2020/02/19 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
HTML5微信播放全屏问题的解决方法
2017/03/09 HTML / CSS
Bose英国官方网站:美国知名音响品牌
2020/01/26 全球购物
两则小学生的自我评价分享
2013/11/14 职场文书
结构工程个人自荐信范文
2013/11/30 职场文书
通用求职信范文模板分享
2013/12/27 职场文书
一夜的工作教学反思
2014/02/08 职场文书
管理标语大全
2014/06/24 职场文书
2014年党委工作总结
2014/11/22 职场文书
拙作再改《我的收音机情缘》
2022/04/05 无线电