scratch – Blame information for rev 125

Subversion Repositories:
Rev:
Rev Author Line No. Line
125 office 1 define([
58 office 2 "../core",
3 "../var/indexOf",
4 "./var/rneedsContext",
5 "../selector"
6 ], function( jQuery, indexOf, rneedsContext ) {
7  
8 var risSimple = /^.[^:#\[\.,]*$/;
9  
10 // Implement the identical functionality for filter and not
11 function winnow( elements, qualifier, not ) {
12 if ( jQuery.isFunction( qualifier ) ) {
13 return jQuery.grep( elements, function( elem, i ) {
125 office 14 /* jshint -W018 */
58 office 15 return !!qualifier.call( elem, i, elem ) !== not;
125 office 16 });
17  
58 office 18 }
19  
20 if ( qualifier.nodeType ) {
21 return jQuery.grep( elements, function( elem ) {
22 return ( elem === qualifier ) !== not;
125 office 23 });
58 office 24  
25 }
26  
125 office 27 if ( typeof qualifier === "string" ) {
28 if ( risSimple.test( qualifier ) ) {
29 return jQuery.filter( qualifier, elements, not );
30 }
31  
32 qualifier = jQuery.filter( qualifier, elements );
58 office 33 }
34  
35 return jQuery.grep( elements, function( elem ) {
125 office 36 return ( indexOf.call( qualifier, elem ) >= 0 ) !== not;
37 });
58 office 38 }
39  
40 jQuery.filter = function( expr, elems, not ) {
41 var elem = elems[ 0 ];
42  
43 if ( not ) {
44 expr = ":not(" + expr + ")";
45 }
46  
125 office 47 return elems.length === 1 && elem.nodeType === 1 ?
48 jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
49 jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
50 return elem.nodeType === 1;
51 }));
58 office 52 };
53  
125 office 54 jQuery.fn.extend({
58 office 55 find: function( selector ) {
125 office 56 var i,
58 office 57 len = this.length,
125 office 58 ret = [],
58 office 59 self = this;
60  
61 if ( typeof selector !== "string" ) {
125 office 62 return this.pushStack( jQuery( selector ).filter(function() {
58 office 63 for ( i = 0; i < len; i++ ) {
64 if ( jQuery.contains( self[ i ], this ) ) {
65 return true;
66 }
67 }
125 office 68 }) );
58 office 69 }
70  
71 for ( i = 0; i < len; i++ ) {
72 jQuery.find( selector, self[ i ], ret );
73 }
74  
125 office 75 // Needed because $( selector, context ) becomes $( context ).find( selector )
76 ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
77 ret.selector = this.selector ? this.selector + " " + selector : selector;
78 return ret;
58 office 79 },
80 filter: function( selector ) {
125 office 81 return this.pushStack( winnow(this, selector || [], false) );
58 office 82 },
83 not: function( selector ) {
125 office 84 return this.pushStack( winnow(this, selector || [], true) );
58 office 85 },
86 is: function( selector ) {
87 return !!winnow(
88 this,
89  
90 // If this is a positional/relative selector, check membership in the returned set
91 // so $("p:first").is("p:last") won't return true for a doc with two "p".
92 typeof selector === "string" && rneedsContext.test( selector ) ?
93 jQuery( selector ) :
94 selector || [],
95 false
96 ).length;
97 }
125 office 98 });
58 office 99  
125 office 100 });