diff options
author | Rick Waldron <waldron.rick@gmail.com> | 2013-04-16 22:16:12 -0400 |
---|---|---|
committer | Rick Waldron <waldron.rick@gmail.com> | 2013-04-16 22:18:44 -0400 |
commit | 77d7f264524677104cd7f37ecdb631d5824eacd4 (patch) | |
tree | a391a15673534ee7f60328793e47fc289becde7f | |
parent | db0326b1fdd22b97e24af34245e38914c04a70ba (diff) | |
download | jquery-77d7f264524677104cd7f37ecdb631d5824eacd4.tar.gz jquery-77d7f264524677104cd7f37ecdb631d5824eacd4.zip |
Fixes #13779. Remove nodes in document order (uses for loop matching empty()).
-rw-r--r-- | src/manipulation.js | 5 | ||||
-rw-r--r-- | test/unit/manipulation.js | 24 |
2 files changed, 27 insertions, 2 deletions
diff --git a/src/manipulation.js b/src/manipulation.js index 3747e0924..ac1bf2bbf 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -75,9 +75,10 @@ jQuery.fn.extend({ remove: function( selector, keepData ) { var elem, elems = selector ? jQuery.filter( selector, this ) : this, - i = elems.length; + i = 0, + l = elems.length; - while ( i-- ) { + for ( ; i < l; i++ ) { elem = elems[ i ]; if ( !keepData && elem.nodeType === 1 ) { diff --git a/test/unit/manipulation.js b/test/unit/manipulation.js index 73ad67715..30710da58 100644 --- a/test/unit/manipulation.js +++ b/test/unit/manipulation.js @@ -1572,6 +1572,30 @@ test( "remove() event cleaning ", 1, function() { cleanUp.remove(); }); +test( "remove() in document order #13779", 1, function() { + var last, + cleanData = jQuery.cleanData; + + jQuery.cleanData = function( nodes ) { + last = nodes[0].textContent; + cleanData.call( this, nodes ); + }; + + jQuery("#qunit-fixture").append( + jQuery.parseHTML( + "<div class='removal-fixture'>1</div>" + + "<div class='removal-fixture'>2</div>" + + "<div class='removal-fixture'>3</div>" + ) + ); + + jQuery(".removal-fixture").remove(); + + equal( last, 3, "The removal fixtures were removed in document order" ); + + jQuery.cleanData = cleanData; +}); + test( "detach()", 11, function() { testRemove("detach"); }); |