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中的传值与传引用
Dec 09 Javascript
JavaScript函数详解
Feb 27 Javascript
jQuery中使用each处理json数据
Apr 23 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
Apr 25 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
Apr 12 Javascript
AngularJs Injecting Services Into Controllers详解
Sep 02 Javascript
AngularJS服务service用法总结
Dec 13 Javascript
使用原生的javascript来实现轮播图
Feb 24 Javascript
详解Bootstrap 学习(一)入门
Apr 12 Javascript
微信小程序项目总结之记账小程序功能的实现(包括后端)
Aug 20 Javascript
vue + axios get下载文件功能
Sep 25 Javascript
javascript实现鼠标点击生成文字特效
Dec 24 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实现Mongodb自定义方式生成自增ID的方法
2015/03/23 PHP
document.onreadystatechange事件的用法分析
2009/10/17 Javascript
javascript小数计算出现近似值的解决办法
2010/02/06 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
JS中捕获console.log()输出的方法
2015/04/16 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
angularjs中的$eval方法详解
2017/04/24 Javascript
vue上传图片组件编写代码
2017/07/26 Javascript
Angular2环境搭建具体操作步骤(推荐)
2017/08/04 Javascript
JavaScript编写的网页小游戏,很给力
2017/08/18 Javascript
vue生成token保存在客户端localStorage中的方法
2017/10/25 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
2019/08/04 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
2019/11/06 Javascript
布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
2011/03/13 Python
python魔法方法-属性转换和类的表示详解
2016/07/22 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
Python基于生成器迭代实现的八皇后问题示例
2018/05/23 Python
python执行精确的小数计算方法
2019/01/21 Python
Python3.5运算符操作实例详解
2019/04/25 Python
python中调试或排错的五种方法示例
2019/09/12 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
python math模块的基本使用教程
2021/01/16 Python
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
实习心得体会
2014/01/02 职场文书
ktv好的活动方案
2014/08/15 职场文书
长城的导游词
2015/01/30 职场文书
2015年评职称个人工作总结
2015/10/15 职场文书
幼儿园教学反思范文
2016/03/02 职场文书
创业计划书之酒店
2019/08/30 职场文书
纯CSS实现酷炫的霓虹灯效果
2021/04/13 HTML / CSS
Python OpenCV实现传统图片格式与base64转换
2021/06/13 Python
输入框跟随文字内容适配宽实现示例
2022/08/14 Javascript