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代码
Apr 23 Javascript
jQuery 学习第七课 扩展jQuery的功能 插件开发
May 17 Javascript
关于js new Date() 出现NaN 的分析
Oct 23 Javascript
js获取class的所有元素
Mar 28 Javascript
js substring从右边获取指定长度字符串(示例代码)
Dec 23 Javascript
js点击出现悬浮窗效果不使用JQuery插件
Jan 20 Javascript
使用Require.js封装原生js轮播图的实现代码
Jun 15 Javascript
vue中接口域名配置为全局变量的实现方法
Sep 20 Javascript
JS函数内部属性之arguments和this实例解析
Oct 07 Javascript
通过JavaScript下载文件到本地的方法(单文件)
Mar 17 Javascript
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
Mar 29 Javascript
通过实例解析jQ Ajax操作相关原理
Sep 23 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的Yii框架的基本使用示例
2015/08/21 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
代码精简的可以实现元素圆角的js函数
2007/07/21 Javascript
javascript 闭包疑问
2010/12/30 Javascript
jquery实现marquee效果(文字或者图片的水平垂直滚动)
2013/01/07 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
ajax读取数据后使用jqchart显示图表的方法
2015/06/10 Javascript
javascript实现网站加入收藏功能
2015/12/16 Javascript
仿iframe效果Aajx文件上传实例
2016/11/18 Javascript
Web 开发中Ajax的Session 超时处理方法
2017/01/19 Javascript
网页中右键功能的实现方法之contextMenu的使用
2017/02/20 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
JavaScript实现仿Clock ISO时钟
2018/06/29 Javascript
vue项目引入字体.ttf的方法
2018/09/28 Javascript
angular中两种表单的区别(响应式和模板驱动表单)
2018/12/06 Javascript
通过js示例讲解时间复杂度与空间复杂度
2019/08/06 Javascript
JavaScript实现抖音罗盘时钟
2019/10/11 Javascript
JQuery实现折叠式菜单的详细代码
2020/06/03 jQuery
vue从后台渲染文章列表以及根据id跳转文章详情详解
2020/12/14 Vue.js
[01:17:47]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
利用python批量修改word文件名的方法示例
2017/10/17 Python
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
Tensorflow之Saver的用法详解
2018/04/23 Python
python中的插值 scipy-interp的实现代码
2018/07/23 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
Python适配器模式代码实现解析
2019/08/02 Python
在pycharm中文件取消用 pytest模式打开的操作
2020/09/01 Python
Python中logging日志的四个等级和使用
2020/11/17 Python
Python绘制词云图之可视化神器pyecharts的方法
2021/02/23 Python
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
口头翻译求职人自荐信
2013/12/07 职场文书
会计与出纳自荐书范文
2014/03/16 职场文书
迎新春趣味活动方案
2014/08/24 职场文书
夫妻分居协议书范本(有子女版)
2014/11/01 职场文书
2016年会领导致辞稿
2015/07/29 职场文书