X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fmanipulation.js;h=59edcbcefdd5f46e3e036377036b894c62c8e50f;hb=435772e29b4ac4ccfdefbc4045d43f714e153381;hp=f2f6c7de6d37d2ba7ea2399e0b1420e437b8b327;hpb=36a98b95c2f3f7617ddf51beec7515acf67d98ba;p=jquery.git diff --git a/src/manipulation.js b/src/manipulation.js index f2f6c7d..59edcbc 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -77,7 +77,14 @@ jQuery.fn.extend({ wrapInner: function( html ) { return this.each(function() { - jQuery( this ).contents().wrapAll( html ); + var self = jQuery( this ), contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } }); }, @@ -213,10 +220,16 @@ 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; - jQuery(this).detach(); + jQuery(this).remove(); if ( next ) { jQuery(next).before( value ); @@ -309,7 +322,7 @@ function cloneCopyEvent(orig, ret) { } function buildFragment( args, nodes, scripts ) { - var fragment, cacheable, cached, cacheresults, doc; + var fragment, cacheable, cacheresults, doc; if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && args[0].indexOf("