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 }

     

  • 相关阅读:
    【jQuery基础学习】03 jQuery中的事件与动画
    【jQuery基础学习】02 jQuery的DOM操作
    【jQuery基础学习】01 jQuery选择器
    【jQuery基础学习】00 序
    【JS复习笔记】07 复习感想
    【JS复习笔记】06 方法
    洛谷P1067 多项式输出 NOIP 2009 普及组 第一题
    嵊州D6T2 城市 city
    博弈论小结
    嵊州D2T4 十七个中毒的英国人 poisoning
  • 原文地址:https://www.cnblogs.com/xiaqilin/p/6804088.html
Copyright © 2011-2022 走看看