开发者

What is the equivalent of IE's removeNode

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?


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


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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜