]> source.dussan.org Git - jquery.git/commitdiff
Coerce eq() argument all the time. Fixes #10616
authorRick Waldron <waldron.rick@gmail.com>
Sun, 30 Oct 2011 17:13:26 +0000 (13:13 -0400)
committerDave Methvin <dave.methvin@gmail.com>
Sun, 6 Nov 2011 21:17:59 +0000 (16:17 -0500)
src/core.js
test/unit/traversing.js

index 9e5a5523d5aa425aa9f3cb4c28a1f72ef8bad471..1884ad5bc499f0aa8ac21b61142cfd867e4a7455 100644 (file)
@@ -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() {
index d276a0d6f3d420b12a9dd5301b0d4ddbe0d5d757..bcd3a974e7633c21ed47d5f16f33b5abc41a5b51 100644 (file)
@@ -103,9 +103,9 @@ test("is(jQuery)", function() {
 
 test("is() with positional selectors", function() {
        expect(23);
-       
-       var html = jQuery( 
-                               '<p id="posp"><a class="firsta" href="#"><em>first</em></a><a class="seconda" href="#"><b>test</b></a><em></em></p>' 
+
+       var html = jQuery(
+                               '<p id="posp"><a class="firsta" href="#"><em>first</em></a><a class="seconda" href="#"><b>test</b></a><em></em></p>'
                        ).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" );
+});
+