1.appendChild()

appendChild()用于向childNodes列表的末尾添加一个节点。更新节点后,appendChild()返回新增的节点。

下面的parentNode代表父节点,newNode代表新节点,returnedNode代表appendChild返回的节点

var returnedNode = parentNode.appendChild(newNode);
console.log( returnedNode == newNode )  //true
console.log( returnedNode == parent.lastChild)  //true

如果传入到appendChild()中的newNode原本已经是文档的一部分了,结果会将该节点从原来的位置转移到新位置。因为任何DOM节点不能同时出现在文档的多个位置上。

例子如下:parentNode中的firstChild将会转移为lastChild

//假设parentNode有多个子节点
var returnedNode = parentNode.appendChild(parentNode.firstChild);
console.log( returnedNode == parentNode.lastChild )     //true
console.log( returnedNode == parentNode.firstChild )    //false

2.insertBefore()

insertBefore()接受2个参数,要插入的节点和作为参考的节点。。更新节点后,insertBefore()返回新插入的节点。

两个参数都是必填,不过第二个参数可以为null

如果第二个参数是null,则insertBefore()实现的效果与appendChild()相同。

//插入后成为最后一个节点
var returnedNode = parentNode.insertBefore(newNode,null);
console.log( returnedNode ==  parentNode.lastChild );   //true//插入后成为第一个节点
var returnedNode = parentNode.insertBefore(newNode,parentNode.firstChild);
console.log( returnedNode ==  parentNode.firstChild );  //true//插入到最后一个节点前面
var returnedNode = parentNode.insertBefore(newNode,parentNode.lastChild);
console.log( returnedNode ==  parentNode.childNodes[parentNode.childNodes.length-2]);   //true
或者
console.log( returnedNode ==  parentNode.childNodes.item(parentNode.childNodes.length-2));  //true

3.replaceChild()

replaceChild()接受两个参数:要插入的节点和要替换的节点。并返回要替换的节点。

//替换第一个节点
var returnedNode = parentNode.replaceChild(newNode,parentNode.firstChild);

4.removeChild()

removeChild()接受一个参数:要移除的节点。并返回移除的节点。

//移除第一个节点
var returnedNode = parentNode.removeChild(parentNode.firstChild);

5.cloneNode()

cloneNode()为一个节点创建完全相同的副本。接受一个可选的布尔值参数,表示是否执行深复制。

当参数为true,则执行深复制,也就是复制节点及其整个子节点树;当参数为false,执行浅复制,只复制节点本身,不包含它的子节点树。

假设HTML如下:

<ul id='oul'><li>text1</li><li>text2</li><li>text3</li>
</ul>

深复制:

var oul = document.getElementById('oul');var deepList = oul.cloneNode(true);console.log(deepList.childNodes.length)     //7 或者 3(IE<9,IE9之前的版本不会为空白符创建节点)

浅复制:

var oul = document.getElementById('oul');var deepList = oul.cloneNode();console.log(deepList.childNodes.length)     //0

appendChild,insertBefore,replaceChild,removeChild,cloneNode用法小结相关推荐

  1. JS DOM 编程复习笔记 -- replaceChild、cloneNode、removeChild(八)

    今天我们继续来去复习DOM操作的三个API,分别为replaceChild.cloneNode.removeChild,替换节点.克隆节点.删除节点,下面一个个来看它们的语法以及使用案例. repla ...

  2. TinyXML用法小结

    TinyXML用法小结 1.      介绍 Tinyxml的官方网址:http://www.grinninglizard.com 官方介绍文档:http://www.grinninglizard.c ...

  3. DOM节点深度克隆函数cloneNode()用法实例

    本文实例讲述了DOM节点深度克隆函数cloneNode()用法.分享给大家供大家参考. <div id= "container" > <ul> <li ...

  4. 【前端 HTML+CSS+JavaScript(JS)】DOM练习-图片在DIV间移动的实现-removeChild cloneNode position append 上下对齐 带注释/总结

    作业要求: 效果: 总结: 1.让元素上下对齐的方法: ①让图片上下对齐用vertical-align:cender; ②让其他元素上下对齐设置line-height与height一样. 2.CSS中 ...

  5. HTML DOM:replaceChild()和cloneNode()

    replaceChild()基本用法 replaceChild()方法用新节点替换某个子节点. 这个新节点可以是文档中某个已经存在的节点,也可以是创建的新的节点. node.replaceChild( ...

  6. oracle @spool,Oracle spool 用法小结

    Oracle spool 用法小结 转自:http://wallimn.javaeye.com/blog/472182 对于SPOOL 数据的SQL,最好要自己定义格式,以方便程序直接导入,SQL语句 ...

  7. js push(),pop(),unshift(),shift()的用法小结

    js中push(),pop(),unshift(),shift()的用法小结 1.push().pop()和unshift().shift() 这两组同为对数组的操作,并且会改变数组的本身的长度及内容 ...

  8. C++ :: 的用法小结

    原文:http://blog.csdn.net/whz_zb/article/details/6843369 :: 的用法小结: 用于将类内声明的静态数据成员在类外初始化: 用于将类内声明的函数成员在 ...

  9. Java中getResourceAsStream的用法小结

    2019独角兽企业重金招聘Python工程师标准>>> Java中getResourceAsStream的用法小结 一.Java中的getResourceAsStream主要有以下三 ...

最新文章

  1. 上海居民被垃圾分类逼疯!这款垃圾自动分类器也许能帮上忙
  2. codefirst updatebase
  3. iOS -- iOS11新特性,如何适配iOS11
  4. android gridview 停止滚动
  5. 通用前端监控采集脚本
  6. 【WEB安全】flask不出网回显方式
  7. Firefox浏览器中,input输入框输入的内容在刷新网页后为何还在?
  8. c++ log函数_19 种损失函数,你能认识几个?
  9. 【Android开发】毛玻璃效果
  10. python实现截图范围框跟随_教你用Python实现截图和文字识别,就是这么简单
  11. 程序人生:入门程序员最容易踩的 7 个坑!
  12. 2018 年最受欢迎的15个顶级 Python 库
  13. 画一个圆角多边形_用SolidWorks一个扫描画出这个多边形瓶子
  14. jQuery 左侧滑动
  15. 数据库系统工程师(软考)
  16. 毕向东java笔记ppt,毕向东java学习笔记.doc
  17. 交换机(防火墙)配置手册
  18. Kafka消费异常报Failing OffsetCommit request since the consumer
  19. python打开文件切片_收藏 | 从Python安装到语法基础,小白都能懂的爬虫教程!(附代码)...
  20. 图解LeetCode——592. 分数加减运算(难度:中等)

热门文章

  1. weblogic部署(weblogic部署springboot项目)
  2. WebDAV之葫芦儿·派盘+飞傲音乐
  3. java和以太坊交互_java类库EthereumJ如何操作以太坊区块链
  4. YTU OJ 2221: 两个链表之间问题(线性表)
  5. Vagrant系列(一)----win10搭建Vagrant+VirtualBox环境
  6. 万字逐行解析与实现Transformer,并进行德译英实战(一)
  7. 【总结】字符串的遍历,replace(),replaceAll()方法的使用
  8. win10无法防问其他计算机没有权限,雨林木风win10系统局域网共享无法访问提示“您可能没有权限使用网络资源”的方案...
  9. mysql自定义函数详解
  10. IEC104 电力规约解析