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 相关文章推荐
利用jquery操作select下拉列表框的代码
Jun 04 Javascript
jquery datepicker参数介绍和示例
Apr 15 Javascript
js中的setInterval和setTimeout使用实例
May 09 Javascript
基于javascript实现的搜索时自动提示功能
Dec 26 Javascript
js控制输入框获得和失去焦点时状态显示的方法
Jan 30 Javascript
JS定义网页表单提交(submit)的方法
Mar 20 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
Sep 04 Javascript
javascript 判断是否是微信浏览器的方法
Oct 09 Javascript
原生js调用json方法总结
Feb 22 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
Nov 01 Javascript
在移动端使用vue-router和keep-alive的方法示例
Dec 02 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
Oct 25 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+mysql)
2007/11/23 PHP
php中经典方法实现判断多维数组是否为空
2011/10/23 PHP
深入理解PHP原理之执行周期分析
2016/06/01 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
2014/08/05 Javascript
javascript制作2048游戏
2015/03/30 Javascript
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
jQuery中事件与动画的总结分享
2016/05/24 Javascript
Bootstrap基本样式学习笔记之标签(5)
2016/12/07 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
JS获取鼠标坐标并且根据鼠标位置不同弹出不同内容
2017/06/12 Javascript
一个基于react的图片裁剪组件示例
2018/04/18 Javascript
vue template中slot-scope/scope的使用方法
2018/09/06 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
Vue 3.0中jsx语法的使用
2020/11/13 Javascript
解决Antd Table表头加Icon和气泡提示的坑
2020/11/17 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
一个超级简单的python web程序
2014/09/11 Python
老生常谈python函数参数的区别(必看篇)
2017/05/29 Python
python模块导入的细节详解
2018/12/10 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
Python split() 函数拆分字符串将字符串转化为列的方法
2019/07/16 Python
方太官方网上商城:销售方太抽油烟机、燃气灶、消毒柜等
2017/01/17 全球购物
Hammitt官网:设计师手袋
2020/05/23 全球购物
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
授权委托书范文
2014/07/31 职场文书
国庆庆典邀请函
2015/02/02 职场文书
2015年植树节活动总结
2015/02/06 职场文书
体育教师个人工作总结
2015/02/09 职场文书
2015年幼儿园中班下学期工作总结
2015/05/22 职场文书
老生常谈 使用 CSS 实现三角形的技巧(多种方法)
2021/04/13 HTML / CSS