function insertAfter(newElement,targetElement) {
  var parent = targetElement.parentNode;
  if (parent.lastChild == targetElement) {
    parent.appendChild(newElement);
  } else {
    parent.insertBefore(newElement,targetElement.nextSibling);
  }
}
研究了那么久.还是不懂
特别是这三条语句...
  var parent = targetElement.parentNode;
  if (parent.lastChild == targetElement)
    parent.insertBefore(newElement,targetElement.nextSibling);
有谁可以做个实验就最好了

解决方案 »

  1.   

    var parent = targetElement.parentNode;//获取目标节点的父节点if (parent.lastChild == targetElement)
     parent.appendChild(newElement);//如果目标节点是父节点的最后一个元素,那么 执行标准的appendChild就可以,appendchild就是将新元素作为子节点添加到最后面。parent.insertBefore(newElement,targetElement.nextSibling);//如果目标节点不是父节点最后元素,在目标节点的下一个节点nextSibling前面插入新节点,也就实现了在目标节点后面插入节点。
      

  2.   

    <script>
    function insertAfter(要创建的新元素,要插入其后的元素) {
      var parent = 要插入其后的元素.parentNode;
      if (parent.lastChild == 要插入其后的元素) {
        parent.appendChild(要创建的新元素);
      } else {
        parent.insertBefore(要创建的新元素,要插入其后的元素.nextSibling);
      }
    }
    function 想知道为什么要用这个函数吗(){
    //因为若不改上面那个函数,只能在这先创建新元素并取得要插入其后的元素,然后传给上面的函数
    var btn = document.createElement('button');
    btn.value="虚有其表的按钮";
    insertAfter(btn,document.getElementById("第二"));
    }
    </script><div id="第一">第一个块</div>
    <div id="第二">第二个块</div>
    <div id="第三">第三个块</div>
    <input type=button onclick="想知道为什么要用这个函数吗();" value="在第二个块后面插入一个按钮吧">
      

  3.   

    <div class="father">
            <div id="node"></div>
    </div>
    var create = document.getElementById("node")
    create.parentNode  这个是不是指create的父节点是class="father"???是不是这样理解