Final pass at fixing #5785. Need to make sure that inner-nodes are detached before...
[jquery.git] / src / manipulation.js
index 9ed22ba..3db2c35 100644 (file)
@@ -213,6 +213,12 @@ jQuery.fn.extend({
 
        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;