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 相关文章推荐
JS 实现Table相同行的单元格自动合并示例代码
Aug 27 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
Jan 23 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
Sep 06 Javascript
JavaScript实现级联菜单的方法
Jun 29 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
Nov 02 Javascript
通过点击jqgrid表格弹出需要的表格数据
Dec 02 Javascript
AngularJS中的拦截器实例详解
Apr 07 Javascript
Node层模拟实现multipart表单的文件上传示例
Jan 02 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
Mar 01 Javascript
Vue组件全局注册实现警告框的实例详解
Jun 11 Javascript
jQuery实现的五星点评功能【案例】
Feb 18 jQuery
easyUI 实现的后台分页与前台显示功能示例
Jun 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
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
PHP生成excel时单元格内换行问题的解决方法
2010/08/26 PHP
Php中使用Select 查询语句的实例
2014/02/19 PHP
PDO::query讲解
2019/01/29 PHP
异步javascript的原理和实现技巧介绍
2012/11/08 Javascript
商城常用滚动的焦点图效果代码简单实用
2013/03/28 Javascript
jQuery 绑定事件到动态创建的元素上的方法实例
2013/08/18 Javascript
浅谈JavaScript Array对象
2014/12/29 Javascript
asp.net+js实现金额格式化
2015/02/27 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
js点击返回跳转到指定页面实现过程
2020/08/20 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
详解Javascript函数声明与递归调用
2016/10/22 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
2016/11/18 Javascript
bootstrap导航、选项卡实现代码
2016/12/28 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
浅谈vue生命周期共有几个阶段?分别是什么?
2020/08/07 Javascript
原生js实现无缝轮播图效果
2021/01/28 Javascript
Python中IPYTHON入门实例
2015/05/11 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
2016/01/20 Python
python函数式编程学习之yield表达式形式详解
2018/03/25 Python
Win10下python 2.7.13 安装配置方法图文教程
2018/09/18 Python
浅析Python 责任链设计模式
2020/09/11 Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
2021/01/13 Python
canvas实现图片马赛克的示例代码
2018/03/26 HTML / CSS
初中校园之声广播稿
2014/01/15 职场文书
学生安全责任书模板
2014/07/25 职场文书
党支部班子“四风”问题自我剖析材料
2014/09/28 职场文书
党员干部对十八届四中全会的期盼
2014/10/17 职场文书
单位病假条范文
2015/08/17 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
Python 如何利用ffmpeg 处理视频素材
2021/11/27 Python
JavaScript中的LHS和RHS分析详情
2022/04/06 Javascript