insertBefore()方法和insertBefore()方法

DOM提供了名为insertBefore()方法,这个方法将把一个新元素插入到一个现有元素的前面。在调用此方法时,我们必须告诉它三件事:

(1)想插入的新元素(newElement)
(2)想把这个新元素插入到哪个现有元素(targetElement)的前面。
(3)这两个元素共同的父元素(parentElement)。

下面是这个方法的调用语法:

parentElement.insertBefore(newElement,targetElement)

我们不必知道那个父元素到底是哪个,因为targetElement元素的parentNode属性就是它。 

 

既然有一个insertBefore()方法,就应该有一个相应的insertAfter()方法。很可惜,这种想法是错的——DOM根本没有提供这样的方法。
但是我们完全可以利用现有的DOM方法和属性把一个节点插入到另一个节点的后面:

function insertAfter(newElement,targetElement){
    var parent = targetElement.parentNode;
    //检查目标元素是不是parent的最后一个子元素
    if(parent.lastChild == targetElement){
        parent.appendChild(newElement);
    } else {
        //如果不是,就把新元素插入到目标元素和parent元素的下一个子元素的中间
        parent.insertBefore(newElement,targetElement.nextSibling);
    }
}

 

posted @ 2013-11-05 17:55  安诺-晴天  阅读(881)  评论(0)    收藏  举报