2012-10-11 65 views
2
var arr = [ "One", "Two", "Three" ]; 

$('select[name="class"]').change(function() { 
    if (jQuery.inArray("blah blah", arr)) { 
     alert("OK"); 
    } 
}); 

这是警告“确定”,但“等等等等”不在数组中......我做错了什么?JQuery inArray returns true

回答

9

jQuery.inArray的功能始终返回值:

描述:搜索一个阵列内的指定值,并返回其 指数(或-1,如果未找到)。

文档:http://api.jquery.com/jQuery.inArray/

你的代码更改为:

if (jQuery.inArray('blah blah', arr)) >= 0) { 
    alert('Ok'); 
} 
3

尝试:

if (jQuery.inArray("blah blah", arr) >-1) { 

代替:

if (jQuery.inArray("blah blah", arr)) { 
3

jQuery.inArray返回-1,如果该项目没有找到。不幸的是,-1是JavaScript中的真值。

检查-1,你很好。