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());
精彩评论