scratch – Diff between revs 58 and 125

Subversion Repositories:
Rev:
Show entire fileIgnore whitespace
Rev 58 Rev 125
Line 1... Line 1...
1 define( [ 1 define([
2 "../core", 2 "../core",
3 "../var/indexOf", 3 "../var/indexOf",
4 "./var/rneedsContext", 4 "./var/rneedsContext",
5 "../selector" 5 "../selector"
6 ], function( jQuery, indexOf, rneedsContext ) { 6 ], function( jQuery, indexOf, rneedsContext ) {
Line 7... Line -...
7   -  
8 "use strict"; -  
9   7  
Line 10... Line 8...
10 var risSimple = /^.[^:#\[\.,]*$/; 8 var risSimple = /^.[^:#\[\.,]*$/;
11   9  
12 // Implement the identical functionality for filter and not 10 // Implement the identical functionality for filter and not
13 function winnow( elements, qualifier, not ) { 11 function winnow( elements, qualifier, not ) {
-   12 if ( jQuery.isFunction( qualifier ) ) {
14 if ( jQuery.isFunction( qualifier ) ) { 13 return jQuery.grep( elements, function( elem, i ) {
15 return jQuery.grep( elements, function( elem, i ) { 14 /* jshint -W018 */
-   15 return !!qualifier.call( elem, i, elem ) !== not;
16 return !!qualifier.call( elem, i, elem ) !== not; 16 });
Line 17... Line -...
17 } ); -  
18 } 17  
19   18 }
20 // Single element 19  
21 if ( qualifier.nodeType ) { 20 if ( qualifier.nodeType ) {
22 return jQuery.grep( elements, function( elem ) { -  
Line 23... Line -...
23 return ( elem === qualifier ) !== not; -  
24 } ); -  
25 } -  
26   -  
27 // Arraylike of elements (jQuery, arguments, Array) -  
28 if ( typeof qualifier !== "string" ) { 21 return jQuery.grep( elements, function( elem ) {
Line 29... Line 22...
29 return jQuery.grep( elements, function( elem ) { 22 return ( elem === qualifier ) !== not;
30 return ( indexOf.call( qualifier, elem ) > -1 ) !== not; 23 });
31 } ); 24  
-   25 }
-   26  
-   27 if ( typeof qualifier === "string" ) {
32 } 28 if ( risSimple.test( qualifier ) ) {
Line 33... Line -...
33   -  
34 // Simple selector that can be filtered directly, removing non-Elements -  
35 if ( risSimple.test( qualifier ) ) { 29 return jQuery.filter( qualifier, elements, not );
36 return jQuery.filter( qualifier, elements, not ); 30 }
37 } 31  
38   32 qualifier = jQuery.filter( qualifier, elements );
Line 39... Line 33...
39 // Complex selector, compare the two sets, removing non-Elements 33 }
40 qualifier = jQuery.filter( qualifier, elements ); 34  
Line 41... Line 35...
41 return jQuery.grep( elements, function( elem ) { 35 return jQuery.grep( elements, function( elem ) {
42 return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1; 36 return ( indexOf.call( qualifier, elem ) >= 0 ) !== not;
43 } ); 37 });
Line 44... Line 38...
44 } 38 }
45   39  
46 jQuery.filter = function( expr, elems, not ) { -  
47 var elem = elems[ 0 ]; -  
48   40 jQuery.filter = function( expr, elems, not ) {
49 if ( not ) { 41 var elem = elems[ 0 ];
50 expr = ":not(" + expr + ")"; 42  
51 } 43 if ( not ) {
Line 52... Line 44...
52   44 expr = ":not(" + expr + ")";
53 if ( elems.length === 1 && elem.nodeType === 1 ) { 45 }
54 return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; 46  
55 } 47 return elems.length === 1 && elem.nodeType === 1 ?
-   48 jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
56   49 jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
Line 57... Line 50...
57 return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { 50 return elem.nodeType === 1;
58 return elem.nodeType === 1; 51 }));
59 } ) ); 52 };
60 }; 53  
61   54 jQuery.fn.extend({
62 jQuery.fn.extend( { 55 find: function( selector ) {
63 find: function( selector ) { 56 var i,
64 var i, ret, 57 len = this.length,
65 len = this.length, 58 ret = [],
Line 66... Line -...
66 self = this; -  
67   -  
68 if ( typeof selector !== "string" ) { 59 self = this;
69 return this.pushStack( jQuery( selector ).filter( function() { 60  
70 for ( i = 0; i < len; i++ ) { 61 if ( typeof selector !== "string" ) {
Line -... Line 62...
-   62 return this.pushStack( jQuery( selector ).filter(function() {
71 if ( jQuery.contains( self[ i ], this ) ) { 63 for ( i = 0; i < len; i++ ) {
-   64 if ( jQuery.contains( self[ i ], this ) ) {
-   65 return true;
72 return true; 66 }
73 } 67 }
74 } 68 }) );
75 } ) ); 69 }
76 } 70  
77   71 for ( i = 0; i < len; i++ ) {
78 ret = this.pushStack( [] ); 72 jQuery.find( selector, self[ i ], ret );
79   73 }
80 for ( i = 0; i < len; i++ ) { 74  
81 jQuery.find( selector, self[ i ], ret ); 75 // Needed because $( selector, context ) becomes $( context ).find( selector )
Line 99... Line 93...
99 jQuery( selector ) : 93 jQuery( selector ) :
100 selector || [], 94 selector || [],
101 false 95 false
102 ).length; 96 ).length;
103 } 97 }
104 } ); 98 });
Line 105... Line 99...
105   99