diff options
author | jeresig <jeresig@gmail.com> | 2009-12-05 15:30:36 -0500 |
---|---|---|
committer | jeresig <jeresig@gmail.com> | 2009-12-05 15:30:36 -0500 |
commit | 2a6de9ab66653e5e424d9cc79d195b555158d04f (patch) | |
tree | cc6385fe4f107bc2163a65cdc366c3867b27199c /src | |
parent | aae0617c834a030902cd8da2714f852d6a1431be (diff) | |
download | jquery-2a6de9ab66653e5e424d9cc79d195b555158d04f.tar.gz jquery-2a6de9ab66653e5e424d9cc79d195b555158d04f.zip |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/manipulation.js | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/manipulation.js b/src/manipulation.js index baf99d52d..7128d11cf 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -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 ); } |