]> source.dussan.org Git - jquery.git/commitdiff
Filter: Use direct filter in winnow
authorSaptak Sengupta <saptak013@gmail.com>
Wed, 10 Jan 2018 05:34:31 +0000 (11:04 +0530)
committerTimmy Willison <4timmywil@gmail.com>
Wed, 17 Jan 2018 16:01:08 +0000 (11:01 -0500)
for both simple and complex selectors

Fixes gh-3272
Closes gh-3910

src/traversing/findFilter.js

index 023a2cefbd196317a1751dbf02da9e4ede3d4d73..268dad796c121cf4e8088c1af806126b8d86bfb3 100644 (file)
@@ -8,8 +8,6 @@ define( [
 
 "use strict";
 
-var risSimple = /^.[^:#\[\.,]*$/;
-
 // Implement the identical functionality for filter and not
 function winnow( elements, qualifier, not ) {
        if ( isFunction( qualifier ) ) {
@@ -32,16 +30,8 @@ function winnow( elements, qualifier, not ) {
                } );
        }
 
-       // Simple selector that can be filtered directly, removing non-Elements
-       if ( risSimple.test( qualifier ) ) {
-               return jQuery.filter( qualifier, elements, not );
-       }
-
-       // Complex selector, compare the two sets, removing non-Elements
-       qualifier = jQuery.filter( qualifier, elements );
-       return jQuery.grep( elements, function( elem ) {
-               return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;
-       } );
+       // Filtered directly for both simple and complex selectors
+       return jQuery.filter( qualifier, elements, not );
 }
 
 jQuery.filter = function( expr, elems, not ) {