From e07b444dfe87f26f0d6031920026142425505ad6 Mon Sep 17 00:00:00 2001 From: Timmy Willison Date: Fri, 27 Jul 2012 18:19:01 -0400 Subject: [PATCH] Fix a regression where has with multiple contexts was not filtering correctly. Test added. --- src/traversing.js | 6 +++--- test/unit/traversing.js | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/traversing.js b/src/traversing.js index 8685ae017..4c58ae0b8 100644 --- a/src/traversing.js +++ b/src/traversing.js @@ -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; } diff --git a/test/unit/traversing.js b/test/unit/traversing.js index 7f9678307..e7d519662 100644 --- a/test/unit/traversing.js +++ b/test/unit/traversing.js @@ -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" ); -- 2.39.5