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 相关文章推荐
js如何判断不同系统的浏览器类型
Oct 28 Javascript
javascript对下拉列表框(select)的操作实例讲解
Nov 29 Javascript
关于js数组去重的问题小结
Jan 24 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
Jan 28 Javascript
javascript 中的console.log和弹出窗口alert
Aug 30 Javascript
JS中传递参数的几种不同方法比较
Jan 20 Javascript
angular中实现li或者某个元素点击变色的两种方法
Jul 27 Javascript
Vue.js 2.5新特性介绍(推荐)
Oct 24 Javascript
浅谈mint-ui 填坑之路
Nov 06 Javascript
浅谈Vue.use到底是什么鬼
Jan 21 Javascript
在vue中使用Echarts画曲线图的示例
Oct 03 Javascript
vue3.0 数字翻牌组件的使用方法详解
Apr 20 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
基于mysql的bbs设计(一)
2006/10/09 PHP
亲密接触PHP之PHP语法学习笔记1
2006/12/17 PHP
网页游戏开发入门教程二(游戏模式+系统)
2009/11/02 PHP
PHP网站备份程序代码分享
2011/06/10 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
PHP获取页面执行时间的方法(推荐)
2016/12/10 PHP
javascript下查找父节点的简单方法
2007/08/13 Javascript
js 返回时间戳所对应的具体时间
2010/07/20 Javascript
jquery引用方法时传递参数原理分析
2014/10/13 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
2017/01/13 Javascript
Vue实现路由跳转和嵌套
2017/06/20 Javascript
vue中子组件向父组件传递数据的实例代码(实现加减功能)
2018/04/20 Javascript
浅析前端路由简介以及vue-router实现原理
2018/06/01 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
解决vue自定义全局消息框组件问题
2019/11/22 Javascript
解决Pytorch 训练与测试时爆显存(out of memory)的问题
2019/08/20 Python
python配置文件写入过程详解
2019/10/19 Python
pymysql 插入数据 转义处理方式
2020/03/02 Python
python中wheel的用法整理
2020/06/15 Python
CSS3 transforms应用于背景图像的解决方法
2019/04/16 HTML / CSS
伦敦最著名的老字号百货公司:Selfridges(塞尔福里奇百货)
2016/07/25 全球购物
德国隐形眼镜店:LuckyLens
2018/07/29 全球购物
北京振戎融通Java面试题
2015/09/03 面试题
人事行政主管岗位职责
2013/12/22 职场文书
大学生精神文明先进个人事迹材料
2014/05/02 职场文书
教师四风对照检查材料思想汇报
2014/09/17 职场文书
师德先进个人事迹材料
2014/12/19 职场文书
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript
springboot如何初始化执行sql语句
2021/06/22 Java/Android
国产动画《万圣街》日语配音版制作决定!
2022/03/20 国漫