What is the equivalent of IE's removeNode

2019-07-19 05:17发布

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

helps me to decide whether I would like to remove childNodes or not.

I would like to know whether the same exists for Firefox, Opera, Chrome and Safari. If not, how can I achieve it?

2条回答
Rolldiameter
2楼-- · 2019-07-19 05:38

No, .removeNode() is not a standard method and it does not exist outside IE.

If you are looking for removeNode's functionality of promoting element's children up a level (an optional boolean argument), you have to do it manually.

However, with jQuery it is easy:

$(elToRemove).replaceWith($(elToRemove).children());
查看更多
祖国的老花朵
3楼-- · 2019-07-19 05:43

Didn't want just just copy code over, give this a read: http://www.sitepoint.com/forums//showthread.php?p=947385

Edit (but I, pst, have no shame -- code from above link ;-)

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 );       
    }
}
查看更多
登录 后发表回答