aboutsummaryrefslogtreecommitdiffstats
path: root/src/manipulation.js
diff options
context:
space:
mode:
authorjeresig <jeresig@gmail.com>2010-01-11 16:25:01 -0500
committerjeresig <jeresig@gmail.com>2010-01-11 16:25:01 -0500
commit3e9ef6f5c08e63a90ef2dfd3bdc833994e7a0ac8 (patch)
tree821bdef3b6a8dfc9aa67c3f45f922b950d5578a6 /src/manipulation.js
parentcb4880ee8353b5fc1a8a509cb0caf3a82818da0a (diff)
downloadjquery-3e9ef6f5c08e63a90ef2dfd3bdc833994e7a0ac8.tar.gz
jquery-3e9ef6f5c08e63a90ef2dfd3bdc833994e7a0ac8.zip
Final pass at fixing #5785. Need to make sure that inner-nodes are detached before the remove() occurs (and it should still occur, the nodes are being obliterated.
Diffstat (limited to 'src/manipulation.js')
-rw-r--r--src/manipulation.js8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/manipulation.js b/src/manipulation.js
index f2f6c7de6..3db2c3552 100644
--- a/src/manipulation.js
+++ b/src/manipulation.js
@@ -213,10 +213,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 );