2
var arr = [ "One", "Two", "Three" ];

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

这是警告“OK”,但“blah blah”不在数组中......我做错了什么?

4

3 回答 3

9

jQuery.inArray函数总是返回一个值:

描述:在数组中搜索指定值并返回其索引(如果未找到则返回 -1)。

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

将您的代码更改为:

if (jQuery.inArray('blah blah', arr)) >= 0) {
    alert('Ok');
}
于 2012-10-11T20:20:48.257 回答
3

尝试 :

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

代替 :

if (jQuery.inArray("blah blah", arr)) {
于 2012-10-11T20:20:24.637 回答
3

如果未找到该项目,jQuery.inArray 返回 -1。不幸的是,-1 在 JavaScript 中是一个真实的值。

检查-1,你很好。

于 2012-10-11T20:20:34.577 回答