No ticket: Reduce .find

(cherry picked from commit 85b3c82445)
This commit is contained in:
Richard Gibson 2013-04-20 10:02:07 -04:00
parent ebecdac242
commit d754b50cb5

View File

@ -10,13 +10,14 @@ var isSimple = /^.[^:#\[\.,]*$/,
jQuery.fn.extend({
find: function( selector ) {
var self, matched, i,
l = this.length;
var i,
ret = [],
self = this,
len = self.length;
if ( typeof selector !== "string" ) {
self = this;
return this.pushStack( jQuery( selector ).filter(function() {
for ( i = 0; i < l; i++ ) {
for ( i = 0; i < len; i++ ) {
if ( jQuery.contains( self[ i ], this ) ) {
return true;
}
@ -24,15 +25,14 @@ jQuery.fn.extend({
}) );
}
matched = [];
for ( i = 0; i < l; i++ ) {
jQuery.find( selector, this[ i ], matched );
for ( i = 0; i < len; i++ ) {
jQuery.find( selector, self[ i ], ret );
}
// Needed because $( selector, context ) becomes $( context ).find( selector )
matched = this.pushStack( l > 1 ? jQuery.unique( matched ) : matched );
matched.selector = ( this.selector ? this.selector + " " : "" ) + selector;
return matched;
ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
ret.selector = this.selector ? this.selector + " " + selector : selector;
return ret;
},
has: function( target ) {