zoukankan      html  css  js  c++  java
  • js之insertBefore(newElement,oldElement)

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

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

    使用这个方法的条件:

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

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

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

    1 function insertAfter(newElement,targetElement) {
    2     //拿到要插入节点的父节点
    3     var parent = targetElement.parentNode;
    4     if(parent.lastChild == targetElement) {
    5         parent.appendChild(newElement);
    6     } else {
    parent.insertBefore(newElement,targetElement.nextSibling);
    7 } 8 }

     

  • 相关阅读:
    763. 划分字母区间(贪心算法)
    1282. 用户分组(贪心算法)
    698. 划分为k个相等的子集
    560. 和为K的子数组
    面试题 16.10. 生存人数
    Python:对列表进行排序并相应地更改另一个列表?
    数据竞赛总结
    面试提问之请你介绍一下xxx方法
    常用数学符号读法
    round() 函数
  • 原文地址:https://www.cnblogs.com/xiaqilin/p/6804088.html
Copyright © 2011-2022 走看看