insertBefore的用法,以及注意事项,并且模仿编写insertAfter()方法

DOM提供的一个名为insertBefore()的方法,用来将一个新元素插入到现有的元素的前面。

使用这个方法的条件:

  • 想插入的新元素是谁newElement,我们创建的元素
  • 插入到谁的前面
  • 2个元素拥有共同的父级,这是这个方法的关键,即使新元素和已经存在的元素是同级的,那么他们一定有共同的父级,最基本的父级那就是body
     <!DOCTYPE html>
    <html>
    <head>
    <script type="text/javascript">
    window.onload = function() {
    var oBox = document.getElementById("box");
    var img = document.createElement("img");
    img.setAttribute("src","img/aa.jpg");
    img.setAttribute("alt","图片");
    img.setAttribute("title","大佛");
    /*必须有共同的父节点,即使都没有在其他盒子里面,那最起码的父节点就是body*/
    oBox.parentNode.insertBefore(img,oBox);
    }
    </script>
    </head>
    <body>
    <div id="box">
    <p>111</p>
    <p>222</p>
    </div>
    </body>
    </html>

    这里在box前面插入一个元素,那么他们的共同父级就是Body,这是毫无疑问的,因此这里必须使用parentNode这个属性

下面模仿上面的insertBefore方法,来写DOM并没有提供的insertAfter方法

 function insertAfter(newElement,targetElement) {
//拿到要插入节点的父节点
var parent = targetElement.parentNode;
if(parent.lastChild == targetElement) {
parent.appendChild(newElement);
} else {
parent.insertBefore(newElement,targetElement.nextSibling);
}
}

最新文章

  1. [Android]电话拨号器开发
  2. Dedecms有效防止采集的两个实用办法
  3. Human and AI&#39;s future (reverie)
  4. 采用Hibernate框架的研发平台如何能够真正兼容Oracle和sqlServer数据库
  5. 把验证码和生成时间负值给$_SESSION[vCode]生成图像给浏览器
  6. zz转码问题
  7. 例题:打印乘法口诀。可能大家一看有点难,但只要理解for 循环嵌套,两层循环,外层循环行数,里层循环列数,搞清楚行数和列数之间的关系,就可以轻松做出这道题
  8. iOS对象序列化
  9. Android酷炫实用的开源框架(UI框架) 转
  10. 利用Android手机里的摄像头进行拍照
  11. Java API —— IO流(数据操作流 &amp; 内存操作流 &amp; 打印流 &amp; 标准输入输出流 &amp; 随机访问流 &amp; 合并流 &amp; 序列化流 &amp; Properties &amp; NIO)
  12. DLL使用总结
  13. ALTIUM 10 过孔设置开窗、不开窗
  14. Loader之一:基本原理
  15. php - 小型微博系统
  16. 浅析CQRS的应用部署
  17. 五十三、linux 编程——TCP 编程基本介绍
  18. openstack-KVM管理工具
  19. Ubuntu 16.04 安装Mysql数据库
  20. 20135202闫佳歆--week2 操作系统是如何工作的--学习笔记

热门文章

  1. 本书已出版&amp;lt;拨云见日:基于android的内核与系统架构源代码分析 &amp;gt;
  2. Python菜鸟晋级12----多线程
  3. How to resolve unassigned shards in Elasticsearch——写得非常好
  4. 关于webuploader跨域解决方法
  5. oracle中对字符串进行分割,并反回随机段
  6. mysql索引的注意事项
  7. pic16F1938
  8. css3 -阻止元素成为鼠标事件目标 pointer-events
  9. 在Scrapy中如何利用Xpath选择器从HTML中提取目标信息(两种方式)
  10. WCF客户端获取服务端异常[自定义异常]