The $.inArray()
method is similar to JavaScript's native .indexOf()
method in that it returns -1 when it doesn't find a match. If the first element within the array matches value
, $.inArray()
returns 0.
Because JavaScript treats 0 as loosely equal to false (i.e. 0 == false, but 0 !== false), to check for the presence of value
within array
, you need to check if it's not equal to (or greater than) -1.
The comparison between values is strict. The following will return -1
(not found) because a number is being searched in an array of strings:
$.inArray( 5 + 5, [ "8", "9", "10", 10 + "" ] );
The value to search for.
An array through which to search.
The index of the array at which to begin the search. The default is 0, which will search the whole array.
Report the index of some elements in the array.
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>jQuery.inArray demo</title> <style> div { color: blue; } span { color: red; } </style> <script src="https://code.jquery.com/jquery-1.10.2.js"></script> </head> <body> <div>"John" found at <span></span></div> <div>4 found at <span></span></div> <div>"Karl" not found, so <span></span></div> <div>"Pete" is in the array, but not at or after index 2, so <span></span></div> <script> var arr = [ 4, "Pete", 8, "John" ]; var $spans = $( "span" ); $spans.eq( 0 ).text( jQuery.inArray( "John", arr ) ); $spans.eq( 1 ).text( jQuery.inArray( 4, arr ) ); $spans.eq( 2 ).text( jQuery.inArray( "Karl", arr ) ); $spans.eq( 3 ).text( jQuery.inArray( "Pete", arr, 2 ) ); </script> </body> </html>
Please login to continue.