From 7cbd7a640fb6590b0eb7cbedd83a8d46eb553c5a Mon Sep 17 00:00:00 2001 From: Rick Waldron Date: Sun, 30 Oct 2011 13:13:26 -0400 Subject: [PATCH] Coerce eq() argument all the time. Fixes #10616 --- src/core.js | 3 ++- test/unit/traversing.js | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/core.js b/src/core.js index 9e5a5523d..1884ad5bc 100644 --- a/src/core.js +++ b/src/core.js @@ -264,9 +264,10 @@ jQuery.fn = jQuery.prototype = { }, eq: function( i ) { + i = +i; return i === -1 ? this.slice( i ) : - this.slice( i, +i + 1 ); + this.slice( i, i + 1 ); }, first: function() { diff --git a/test/unit/traversing.js b/test/unit/traversing.js index d276a0d6f..bcd3a974e 100644 --- a/test/unit/traversing.js +++ b/test/unit/traversing.js @@ -103,9 +103,9 @@ test("is(jQuery)", function() { test("is() with positional selectors", function() { expect(23); - - var html = jQuery( - '

firsttest

' + + var html = jQuery( + '

firsttest

' ).appendTo( "body" ), isit = function(sel, match, expect) { equal( jQuery( sel ).is( match ), expect, "jQuery( " + sel + " ).is( " + match + " )" ); @@ -630,3 +630,13 @@ test("add(String, Context)", function() { deepEqual( jQuery( document.getElementById("firstp") ).add( "#ap", ctx ).get(), q( "firstp" ), "Add gEBId to selector, not in context" ); deepEqual( jQuery( document.getElementById("firstp") ).add( "#ap", document.getElementsByTagName("body")[0] ).get(), q( "firstp", "ap" ), "Add gEBId to selector, in context" ); }); + +test("eq('-1') #10616", function() { + expect(3); + var $divs = jQuery( "div" ); + + equal( $divs.eq( -1 ).length, 1, "The number -1 returns a selection that has length 1" ); + equal( $divs.eq( "-1" ).length, 1, "The string '-1' returns a selection that has length 1" ); + deepEqual( $divs.eq( "-1" ), $divs.eq( -1 ), "String and number -1 match" ); +}); +