Fix #13721. Filter before .remove() loop so positionals work. Close gh-1221.

(Cherry picked from 1b61026650)
This commit is contained in:
Dave Methvin
2013-04-05 08:57:01 -04:00
parent ca045de688
commit f7a378e6b7
2 changed files with 21 additions and 7 deletions

View File

@@ -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;
},