]> source.dussan.org Git - jquery.git/commitdiff
Fix a regression where has with multiple contexts was not filtering correctly. Test...
authorTimmy Willison <timmywillisn@gmail.com>
Fri, 27 Jul 2012 22:19:01 +0000 (18:19 -0400)
committerTimmy Willison <timmywillisn@gmail.com>
Fri, 27 Jul 2012 22:19:18 +0000 (18:19 -0400)
src/traversing.js
test/unit/traversing.js

index 8685ae017f767a0e1ccd53e83664012880a117e9..4c58ae0b83a22d9ea7b8dae55d555a07e27250ba 100644 (file)
@@ -48,12 +48,12 @@ jQuery.fn.extend({
        },
 
        has: function( target ) {
-               var i = 0,
+               var i,
                        targets = jQuery( target, this ),
-                       l = targets.length;
+                       len = targets.length;
 
                return this.filter(function() {
-                       for ( ; i < l; i++ ) {
+                       for ( i = 0; i < len; i++ ) {
                                if ( jQuery.contains( this, targets[i] ) ) {
                                        return true;
                                }
index 7f9678307c655d97b9be8212f96c4320ad0af415..e7d5196628f67319b57ac262bdf04d1f79957a9b 100644 (file)
@@ -376,7 +376,7 @@ test("has(Element)", function() {
 });
 
 test("has(Selector)", function() {
-       expect(4);
+       expect( 5 );
 
        var obj = jQuery("#qunit-fixture").has("#sndp");
        deepEqual( obj.get(), q("qunit-fixture"), "Keeps elements that have any element matching the selector as a descendant" );
@@ -385,7 +385,10 @@ test("has(Selector)", function() {
        deepEqual( detached.has("i").get(), detached.get(), "...Even when detached" );
 
        var multipleParent = jQuery("#qunit-fixture, #header").has("#sndp");
-       deepEqual( obj.get(), q("qunit-fixture"), "Does not include elements that do not have the element as a descendant" );
+       deepEqual( multipleParent.get(), q("qunit-fixture"), "Does not include elements that do not have the element as a descendant" );
+
+       multipleParent = jQuery("#select1, #select2, #select3").has("#option1a, #option3a");
+       deepEqual( multipleParent.get(), q("select1", "select3"), "Multiple contexts are checks correctly" );
 
        var multipleHas = jQuery("#qunit-fixture").has("#sndp, #first");
        deepEqual( multipleHas.get(), q("qunit-fixture"), "Only adds elements once" );