mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Traversing: Check all pairwise element combinations for .find( els )
Ref b8d0d54a3c
Fixes #14701
This commit is contained in:
parent
a2250b0f4c
commit
391c21b15d
@ -53,14 +53,14 @@ jQuery.filter = function( expr, elems, not ) {
|
|||||||
|
|
||||||
jQuery.fn.extend({
|
jQuery.fn.extend({
|
||||||
find: function( selector ) {
|
find: function( selector ) {
|
||||||
var i = 0,
|
var i,
|
||||||
len = this.length,
|
len = this.length,
|
||||||
ret = [],
|
ret = [],
|
||||||
self = this;
|
self = this;
|
||||||
|
|
||||||
if ( typeof selector !== "string" ) {
|
if ( typeof selector !== "string" ) {
|
||||||
return this.pushStack( jQuery( selector ).filter(function() {
|
return this.pushStack( jQuery( selector ).filter(function() {
|
||||||
for ( ; i < len; i++ ) {
|
for ( i = 0; i < len; i++ ) {
|
||||||
if ( jQuery.contains( self[ i ], this ) ) {
|
if ( jQuery.contains( self[ i ], this ) ) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -68,8 +68,7 @@ jQuery.fn.extend({
|
|||||||
}) );
|
}) );
|
||||||
}
|
}
|
||||||
|
|
||||||
i = 0;
|
for ( i = 0; i < len; i++ ) {
|
||||||
for ( ; i < len; i++ ) {
|
|
||||||
jQuery.find( selector, self[ i ], ret );
|
jQuery.find( selector, self[ i ], ret );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,19 +24,21 @@ test( "find(leading combinator)", function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test( "find(node|jQuery object)", function() {
|
test( "find(node|jQuery object)", function() {
|
||||||
expect( 12 );
|
expect( 13 );
|
||||||
|
|
||||||
var $foo = jQuery("#foo"),
|
var $foo = jQuery("#foo"),
|
||||||
$blog = jQuery(".blogTest"),
|
$blog = jQuery(".blogTest"),
|
||||||
$first = jQuery("#first"),
|
$first = jQuery("#first"),
|
||||||
$two = $blog.add( $first ),
|
$two = $blog.add( $first ),
|
||||||
|
$twoMore = jQuery("#ap").add( $blog ),
|
||||||
$fooTwo = $foo.add( $blog );
|
$fooTwo = $foo.add( $blog );
|
||||||
|
|
||||||
equal( $foo.find( $blog ).text(), "Yahoo", "Find with blog jQuery object" );
|
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( $blog[ 0 ] ).text(), "Yahoo", "Find with blog node" );
|
||||||
equal( $foo.find( $first ).length, 0, "#first is not in #foo" );
|
equal( $foo.find( $first ).length, 0, "#first is not in #foo" );
|
||||||
equal( $foo.find( $first[ 0 ]).length, 0, "#first not in #foo (node)" );
|
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 ).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)" );
|
ok( $fooTwo.find( $blog[ 0 ] ).is(".blogTest"), "Blog is part of the collection, but also within foo(node)" );
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user