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自定义的函数
Aug 05 Javascript
锋利的jQuery 第三章章节总结的例子
Mar 23 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
Jan 27 Javascript
JavaScript中合并数组的N种方法
Sep 16 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
Jun 28 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
May 04 jQuery
jQuery封装animate.css的实例
Jan 04 jQuery
详解javascript常用工具类的封装
Jan 30 Javascript
webpack将js打包后的map文件详解
Feb 22 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
May 03 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
Aug 03 Javascript
JavaScript事件循环及宏任务微任务原理解析
Sep 02 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中随机显示图片的函数代码
2011/06/23 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
2017/07/10 PHP
jQuery 连续列表实现代码
2009/12/21 Javascript
js+css在交互上的应用
2010/07/18 Javascript
跨浏览器的事件对象介绍
2012/06/27 Javascript
JavaScript函数模式详解
2014/11/07 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
解决nodejs中使用http请求返回值为html时乱码的问题
2017/02/18 NodeJs
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
2017/04/04 jQuery
PHP自动加载autoload和命名空间的应用小结
2017/12/01 Javascript
vue router 跳转后回到顶部的实例
2018/08/31 Javascript
vue-cli中vue本地实现跨域调试接口
2019/01/16 Javascript
ES6知识点整理之对象解构赋值应用示例
2019/04/17 Javascript
javascript实现弹幕墙效果
2019/11/28 Javascript
JavaScript实现轮播图效果
2020/10/30 Javascript
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
python 内置函数filter
2017/06/01 Python
Flask框架配置与调试操作示例
2018/07/23 Python
详解Python 装饰器执行顺序迷思
2018/08/08 Python
python dict 相同key 合并value的实例
2019/01/21 Python
jupyter 导入csv文件方式
2020/04/21 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
香港通票:Hong Kong Pass
2019/02/26 全球购物
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
Farfetch澳大利亚官网:Farfetch Australia
2020/04/26 全球购物
分公司经理岗位职责
2013/11/11 职场文书
试用期转正鉴定评语
2014/01/27 职场文书
会议活动邀请函
2014/01/27 职场文书
毕业生大学生活自我总结
2014/01/31 职场文书
2014年小学生迎国庆65周年演讲稿
2014/09/27 职场文书
2014年班干部工作总结
2014/11/25 职场文书
创业计划书之小型广告公司
2019/10/22 职场文书
励志正能量20句:送给所有为梦想拼搏的人
2019/11/11 职场文书
Python编程中Python与GIL互斥锁关系作用分析
2021/09/15 Python