diff --git a/src/traversing/findFilter.js b/src/traversing/findFilter.js index f903ac715..dd70a73f7 100644 --- a/src/traversing/findFilter.js +++ b/src/traversing/findFilter.js @@ -53,14 +53,14 @@ jQuery.filter = function( expr, elems, not ) { jQuery.fn.extend({ find: function( selector ) { - var i = 0, + var i, len = this.length, ret = [], self = this; if ( typeof selector !== "string" ) { return this.pushStack( jQuery( selector ).filter(function() { - for ( ; i < len; i++ ) { + for ( i = 0; i < len; i++ ) { if ( jQuery.contains( self[ i ], this ) ) { return true; } @@ -68,8 +68,7 @@ jQuery.fn.extend({ }) ); } - i = 0; - for ( ; i < len; i++ ) { + for ( i = 0; i < len; i++ ) { jQuery.find( selector, self[ i ], ret ); } diff --git a/test/unit/traversing.js b/test/unit/traversing.js index b46089271..fbc453c1d 100644 --- a/test/unit/traversing.js +++ b/test/unit/traversing.js @@ -24,19 +24,21 @@ test( "find(leading combinator)", function() { }); test( "find(node|jQuery object)", function() { - expect( 12 ); + expect( 13 ); var $foo = jQuery("#foo"), $blog = jQuery(".blogTest"), $first = jQuery("#first"), $two = $blog.add( $first ), + $twoMore = jQuery("#ap").add( $blog ), $fooTwo = $foo.add( $blog ); equal( $foo.find( $blog ).text(), "Yahoo", "Find with blog jQuery object" ); equal( $foo.find( $blog[ 0 ] ).text(), "Yahoo", "Find with blog node" ); equal( $foo.find( $first ).length, 0, "#first is not in #foo" ); equal( $foo.find( $first[ 0 ]).length, 0, "#first not in #foo (node)" ); - ok( $foo.find( $two ).is(".blogTest"), "Find returns only nodes within #foo" ); + deepEqual( $foo.find( $two ).get(), $blog.get(), "Find returns only nodes within #foo" ); + deepEqual( $foo.find( $twoMore ).get(), $blog.get(), "...regardless of order" ); ok( $fooTwo.find( $blog ).is(".blogTest"), "Blog is part of the collection, but also within foo" ); ok( $fooTwo.find( $blog[ 0 ] ).is(".blogTest"), "Blog is part of the collection, but also within foo(node)" );