X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmanipulation.js;h=3db2c3552146803060fd58c43f4473638d19560f;hb=3e9ef6f5c08e63a90ef2dfd3bdc833994e7a0ac8;hp=081bb54819c6866f362ad443cbe962d477eec8c0;hpb=4681216c4bdf25b6b146b3f952917f46079c6ef7;p=jquery.git diff --git a/src/manipulation.js b/src/manipulation.js index 081bb54..3db2c35 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -196,6 +196,14 @@ jQuery.fn.extend({ this.empty().append( value ); } + } else if ( jQuery.isFunction( value ) ) { + this.each(function(i){ + var self = jQuery(this), old = self.html(); + self.empty().append(function(){ + return value.call( this, i, old ); + }); + }); + } else { this.empty().append( value ); } @@ -205,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;