js中AppendChild与insertBefore的用法详细解析


Posted in Javascript onDecember 16, 2013

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 相关文章推荐
JavaScript中URL编码函数代码
Jan 11 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
Mar 26 Javascript
JavaScript中this详解
Sep 01 Javascript
js获取及判断键盘按键的方法
Dec 01 Javascript
半个小时学json(json传递示例)
Dec 25 Javascript
jQuery仿写百度百科的目录树
Jan 03 Javascript
原生js实现放大镜
Feb 20 Javascript
详解升级react-router 4 踩坑指南
Aug 14 Javascript
koa socket即时通讯的示例代码
Sep 07 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
Feb 12 Javascript
Vue表单提交点击事件只允许点击一次的实例
Oct 23 Javascript
微信小程序轮播图swiper代码详解
Dec 01 Javascript
JS获取月的最后一天与JS得到一个月份最大天数的实例代码
Dec 16 #Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
Dec 16 #Javascript
JS冒泡事件的快速解决方法
Dec 16 #Javascript
JS批量操作CSS属性详细解析
Dec 16 #Javascript
js鼠标及对象坐标控制属性详细解析
Dec 14 #Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
Dec 14 #Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
Dec 14 #Javascript
You might like
php float不四舍五入截取浮点型字符串方法总结
2013/10/28 PHP
PHP创建桌面快捷方式的实例代码
2014/02/17 PHP
解密ThinkPHP3.1.2版本之模板继承
2014/06/19 PHP
PHP实现生成透明背景的PNG缩略图函数分享
2014/07/08 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
ExtJs的Date格式字符代码
2010/12/30 Javascript
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
js 程序执行与顺序实现详解
2013/05/13 Javascript
理解javascript中的严格模式
2016/02/01 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
2016/09/28 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
浅谈Vue为什么不能检测数组变动
2019/10/14 Javascript
基于Vue CSR的微前端实现方案实践
2020/05/27 Javascript
Python 时间操作例子和时间格式化参数小结
2014/04/24 Python
Python统计列表中的重复项出现的次数的方法
2014/08/18 Python
Python RuntimeError: thread.__init__() not called解决方法
2015/04/28 Python
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
2018/10/11 Python
在Mac中PyCharm配置python Anaconda环境过程图解
2020/03/11 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
自考自我鉴定范文
2013/10/30 职场文书
行政管理专业推荐信
2013/11/02 职场文书
2014年公司植树节活动方案
2014/03/04 职场文书
希特勒的演讲稿
2014/05/23 职场文书
学校先进集体事迹材料
2014/05/31 职场文书
比赛口号大全
2014/06/10 职场文书
党的群众路线教育实践活动个人对照检查材料(乡镇)
2014/11/05 职场文书
3.15消费者权益日活动总结
2015/02/09 职场文书
政审证明范文
2015/06/19 职场文书
话题作文之学会尊重
2019/12/16 职场文书
如何用Laravel包含你自己的帮助函数
2021/05/27 PHP
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android
漫画《催眠麦克风-Dawn Of Divisions》第二卷PV公开
2022/04/05 日漫
IDEA中sout快捷键无效问题的解决方法
2022/07/23 Java/Android