什么是IE的removeNode的等价物

时间:2010-12-21 02:21:03

标签: javascript cross-browser

IE的removeNode http://msdn.microsoft.com/en-us/library/ms536708(VS.85).aspx

帮助我决定是否要删除childNodes。

我想知道Firefox,Opera,Chrome和Safari是否存在同样的问题。如果没有,我该如何实现呢?

2 个答案:

答案 0 :(得分:5)

不想只是复制代码,请将其读为:http://www.sitepoint.com/forums//showthread.php?p=947385

编辑(但我,pst,没有羞耻 - 上面链接的代码; - )

if ( window.Node )
Node.prototype.removeNode = function( removeChildren )
{
    var self = this;
    if ( Boolean( removeChildren ) )
    {
        return this.parentNode.removeChild( self );
    }
    else
    {
        var range = document.createRange();
        range.selectNodeContents( self );
        return this.parentNode.replaceChild( range.extractContents(), self );       
    }
}

答案 1 :(得分:2)

不,.removeNode()不是标准方法,在IE之外不存在。

如果您正在寻找removeNode将元素的子元素提升到某个级别(可选的布尔参数)的功能,则必须手动执行此操作。

然而,使用jQuery很容易:

$(elToRemove).replaceWith($(elToRemove).children());