From 88572ee6924c2322c9d405280b493c4a894f14e2 Mon Sep 17 00:00:00 2001 From: John Resig Date: Wed, 9 Dec 2009 22:03:14 -0800 Subject: [PATCH] Make sure that the correct args are passed in to the filter callback (and by extension, the not callback). Fixes #5594. --- src/traversing.js | 2 +- test/unit/traversing.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/traversing.js b/src/traversing.js index d6947ace6..942138c37 100644 --- a/src/traversing.js +++ b/src/traversing.js @@ -8,7 +8,7 @@ var runtil = /Until$/, var winnow = function( elements, qualifier, keep ) { if ( jQuery.isFunction( qualifier ) ) { return jQuery.grep(elements, function(elem, i) { - return !!qualifier.call( elem, i ) === keep; + return !!qualifier.call( elem, i, elem ) === keep; }); } else if ( qualifier.nodeType ) { diff --git a/test/unit/traversing.js b/test/unit/traversing.js index a235bbd5a..c97de6d4d 100644 --- a/test/unit/traversing.js +++ b/test/unit/traversing.js @@ -64,9 +64,11 @@ test("filter(Selector)", function() { }); test("filter(Function)", function() { - expect(1); + expect(2); same( jQuery("p").filter(function() { return !jQuery("a", this).length }).get(), q("sndp", "first"), "filter(Function)" ); + + same( jQuery("p").filter(function(i, elem) { return !jQuery("a", elem).length }).get(), q("sndp", "first"), "filter(Function) using arg" ); }); test("filter(Element)", function() {