6 ], function( jQuery
, indexOf
, rneedsContext
) {
8 var risSimple
= /^.[^:#\[\.,]*$/;
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
) {
15 return !!qualifier
.call( elem
, i
, elem
) !== not
;
20 if ( qualifier
.nodeType
) {
21 return jQuery
.grep( elements
, function( elem
) {
22 return ( elem
=== qualifier
) !== not
;
27 if ( typeof qualifier
=== "string" ) {
28 if ( risSimple
.test( qualifier
) ) {
29 return jQuery
.filter( qualifier
, elements
, not
);
32 qualifier
= jQuery
.filter( qualifier
, elements
);
35 return jQuery
.grep( elements
, function( elem
) {
36 return ( jQuery
.inArray( elem
, qualifier
) >= 0 ) !== not
;
40 jQuery
.filter = function( expr
, elems
, not
) {
41 var elem
= elems
[ 0 ];
44 expr
= ":not(" + expr
+ ")";
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;
55 find: function( selector
) {
61 if ( typeof selector
!== "string" ) {
62 return this.pushStack( jQuery( selector
).filter(function() {
63 for ( i
= 0; i
< len
; i
++ ) {
64 if ( jQuery
.contains( self
[ i
], this ) ) {
71 for ( i
= 0; i
< len
; i
++ ) {
72 jQuery
.find( selector
, self
[ i
], ret
);
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
;
80 filter: function( selector
) {
81 return this.pushStack( winnow(this, selector
|| [], false) );
83 not: function( selector
) {
84 return this.pushStack( winnow(this, selector
|| [], true) );
86 is: function( selector
) {
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
) ?