Skip to content
Permalink
Browse files

Added support for .eq(-N), .first(), and .last(). Fixes #2164 and #4188.

  • Loading branch information
jeresig committed Sep 9, 2009
1 parent 4ea4fad commit 9de120e6d7cfffa3d990a6ccf23db3cd74e2bdc0
Showing with 25 additions and 3 deletions.
  1. +11 −1 src/traversing.js
  2. +14 −2 test/unit/traversing.js
@@ -78,7 +78,17 @@ jQuery.fn.extend({
},

eq: function( i ) {
return this.slice( i, +i + 1 );
return i === -1 ?
this.slice( i ) :
this.slice( i, +i + 1 );
},

first: function() {
return this.eq( 0 );
},

last: function() {
return this.eq( -1 );
},

slice: function() {
@@ -203,7 +203,7 @@ test("prev([String])", function() {
});

test("slice()", function() {
expect(6);
expect(7);

var $links = jQuery("#ap a");

@@ -213,8 +213,20 @@ test("slice()", function() {
isSet( $links.slice(-1), q("mark"), "slice(-1)" );

isSet( $links.eq(1), q("groups"), "eq(1)" );

isSet( $links.eq('2'), q("anchor1"), "eq('2')" );
isSet( $links.eq(-1), q("mark"), "eq(-1)" );
});

test("first()/last()", function() {
expect(4);

var $links = jQuery("#ap a"), $none = jQuery("asdf");

isSet( $links.first(), q("google"), "first()" );
isSet( $links.last(), q("mark"), "last()" );

isSet( $none.first(), [], "first() none" );
isSet( $none.last(), [], "last() none" );
});

test("map()", function() {

0 comments on commit 9de120e

Please sign in to comment.
You can’t perform that action at this time.