diff options
Diffstat (limited to 'src/core.js')
-rw-r--r-- | src/core.js | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/core.js b/src/core.js index 8d9a94f63..8bc3137dd 100644 --- a/src/core.js +++ b/src/core.js @@ -682,18 +682,21 @@ jQuery.extend({ return ret; }, - inArray: function( elem, array ) { - if ( !array ) { - return -1; - } + inArray: function( elem, array, i ) { + var len; - if ( indexOf ) { - return indexOf.call( array, elem ); - } + if ( array ) { + if ( indexOf ) { + return indexOf.call( array, elem, i ); + } - for ( var i = 0, length = array.length; i < length; i++ ) { - if ( array[ i ] === elem ) { - return i; + len = array.length; + i = i && i < 0 ? Math.max( 0, len + i ) : 0; + + for ( ; i < len; i++ ) { + if ( array[ i ] === elem ) { + return i; + } } } |