replaceWith: function( value ) {
if ( this[0] && this[0].parentNode ) {
+ // Make sure that the elements are removed from the DOM before they are inserted
+ // this can help fix replacing a parent with child elements
+ if ( !jQuery.isFunction( value ) ) {
+ value = jQuery( value ).detach();
+ }
+
return this.each(function() {
var next = this.nextSibling, parent = this.parentNode;
- jQuery(this).detach();
+ jQuery(this).remove();
if ( next ) {
jQuery(next).before( value );