aboutsummaryrefslogtreecommitdiffstats
path: root/src/core.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/core.js')
-rw-r--r--src/core.js23
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;
+ }
}
}