admin管理员组

文章数量:1318976

IE's removeNode (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?

IE's removeNode http://msdn.microsoft./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?

Share Improve this question asked Dec 21, 2010 at 2:21 NazmulNazmul 7,21812 gold badges53 silver badges64 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 5

Didn't want just just copy code over, give this a read: http://www.sitepoint./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 );       
    }
}

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());

本文标签: javascriptWhat is the equivalent of IE39s removeNodeStack Overflow