-jQuery.winnow = function( elements, qualifier, keep ) {
+var winnow = function( elements, qualifier, keep ) {
if(jQuery.isFunction( qualifier )) {
return jQuery.grep(elements, function(elem, i) {
return !!qualifier.call( elem, i ) === keep;
},
not: function( selector ) {
- return this.pushStack( jQuery.winnow(this, selector, false), "not", selector);
+ return this.pushStack( winnow(this, selector, false), "not", selector);
},
filter: function( selector ) {
- return this.pushStack( jQuery.winnow(this, selector, true), "filter", selector );
+ return this.pushStack( winnow(this, selector, true), "filter", selector );
},
closest: function( selector, context ) {
},
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() {