aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDave Methvin <dave.methvin@gmail.com>2013-04-05 08:57:01 -0400
committerDave Methvin <dave.methvin@gmail.com>2013-04-06 16:47:03 -0400
commitf7a378e6b7b4599930a9bd97bd30ff4855498a5f (patch)
tree69856f24762fdf3086a6e40e807d2eaac4b41469 /src
parentca045de68852d2e3ed2e752dcf0542eecfdf602c (diff)
downloadjquery-f7a378e6b7b4599930a9bd97bd30ff4855498a5f.tar.gz
jquery-f7a378e6b7b4599930a9bd97bd30ff4855498a5f.zip
Fix #13721. Filter before .remove() loop so positionals work. Close gh-1221.
(Cherry picked from 1b610266502490eab42a0b9ddfac2f93da0b0fe1)
Diffstat (limited to 'src')
-rw-r--r--src/manipulation.js9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/manipulation.js b/src/manipulation.js
index 3a4f9a688..196794f83 100644
--- a/src/manipulation.js
+++ b/src/manipulation.js
@@ -160,10 +160,12 @@ jQuery.fn.extend({
// keepData is for internal use only--do not document
remove: function( selector, keepData ) {
var elem,
- i = 0;
+ elems = selector ? jQuery.filter( selector, this ) : this,
+ i = elems.length;
+
+ while ( i-- ) {
+ elem = elems[ i ];
- for ( ; (elem = this[i]) != null; i++ ) {
- if ( !selector || jQuery.filter( selector, [ elem ] ).length > 0 ) {
if ( !keepData && elem.nodeType === 1 ) {
jQuery.cleanData( getAll( elem ) );
}
@@ -175,7 +177,6 @@ jQuery.fn.extend({
elem.parentNode.removeChild( elem );
}
}
- }
return this;
},