@@ -53,9 +53,10 @@ jQuery.fn.extend({
5353 } ,
5454
5555 closest : function ( selectors , context ) {
56+ var ret ;
5657 if ( jQuery . isArray ( selectors ) ) {
57- var ret = [ ] , cur = this [ 0 ] , match , matches = { } , selector , level = 1 ;
58-
58+ var cur = this [ 0 ] , match , matches = { } , selector , level = 1 ;
59+ ret = [ ] ;
5960 if ( cur && selectors . length ) {
6061 for ( var i = 0 , l = selectors . length ; i < l ; i ++ ) {
6162 selector = selectors [ i ] ;
@@ -80,13 +81,12 @@ jQuery.fn.extend({
8081 }
8182 }
8283
83- return ret ;
84+ return ret . length > 1 ? jQuery . unique ( ret ) : ret ;
8485 }
8586
8687 var pos = jQuery . expr . match . POS . test ( selectors ) ?
8788 jQuery ( selectors , context || this . context ) : null ;
88-
89- return this . map ( function ( i , cur ) {
89+ ret = jQuery . map ( this . get ( ) , function ( cur , i ) {
9090 while ( cur && cur . ownerDocument && cur !== context ) {
9191 if ( pos ? pos . index ( cur ) > - 1 : jQuery ( cur ) . is ( selectors ) ) {
9292 return cur ;
@@ -95,6 +95,10 @@ jQuery.fn.extend({
9595 }
9696 return null ;
9797 } ) ;
98+
99+ ret = ret . length > 1 ? jQuery . unique ( ret ) : ret ;
100+
101+ return this . pushStack ( ret , "closest" , selectors ) ;
98102 } ,
99103
100104 // Determine the position of an element within
0 commit comments