From 24e036c7c88e7e3a1f878292e4b59914e1f4575c Mon Sep 17 00:00:00 2001 From: David Serduke Date: Mon, 17 Dec 2007 21:02:05 +0000 Subject: [PATCH] Fixed #2070 by adding a test for !nodeType to isArrayLike so DOM elements like SELECT are not considered array-like (even though they really are). --- src/core.js | 6 ++---- test/unit/core.js | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/core.js b/src/core.js index 1ec8de0..1e4f924 100644 --- a/src/core.js +++ b/src/core.js @@ -352,11 +352,9 @@ jQuery.fn = jQuery.prototype = { else selector = jQuery.multiFilter( selector, this ); + var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType; return this.filter(function() { - // check to see if the selector is array-like otherwise assume it is just a DOM element - return ( selector.length && selector[selector.length - 1] !== undefined ) - ? jQuery.inArray( this, selector ) < 0 - : this != selector; + return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector; }); }, diff --git a/test/unit/core.js b/test/unit/core.js index 170be21..6b2c3fe 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -1068,7 +1068,7 @@ test("not()", function() { isSet( $("#form option").not("option.emptyopt:contains('Nothing'),[selected],[value='1']").get(), q("option1c", "option1d", "option2c", "option3d" ), "not('complex selector')"); var selects = $("#form select"); - isSet( selects.not( selects[1] ), ["select1", "select3"], "filter out DOM element"); + isSet( selects.not( selects[1] ), q("select1", "select3"), "filter out DOM element"); }); test("andSelf()", function() { -- 1.7.10.4