Make sure that the previous element is removed from the page before the next is inserted, in replaceWith. Using a variation of the patch by snaury. Fixes #2697.
This commit is contained in:
parent
aae0617c83
commit
2a6de9ab66
2 changed files with 19 additions and 2 deletions
|
@ -210,7 +210,17 @@ jQuery.fn.extend({
|
|||
|
||||
replaceWith: function( value ) {
|
||||
if ( this[0] && this[0].parentNode ) {
|
||||
return this.after( value ).remove();
|
||||
return this.each(function(){
|
||||
var next = this.nextSibling, parent = this.parentNode;
|
||||
|
||||
jQuery(this).remove();
|
||||
|
||||
if ( next ) {
|
||||
jQuery(next).before( value );
|
||||
} else {
|
||||
jQuery(parent).append( value );
|
||||
}
|
||||
});
|
||||
} else {
|
||||
return this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value );
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue