jQuery inArray总是在没有匹配项时查找匹配项

jQuery inArray总是在没有匹配项时查找匹配项,jquery,Jquery,我使用inArray来确定值是否位于如下所示的数组中: $.each($("input[type=checkbox]#type"), function (x, y) { if ($.inArray(o, $(y).val().toString())) { console.log("Here"); } else { console.log("Not H

我使用inArray来确定值是否位于如下所示的数组中:

$.each($("input[type=checkbox]#type"), function (x, y) {

        if ($.inArray(o, $(y).val().toString())) {
            console.log("Here");
        }
        else {
            console.log("Not Here");
        }

    });
o中的值为:

var o = [11, 17, 5];
这是我的复选框:

<input type="checkbox" id="type" value="5" />
<input type="checkbox" id="type" value="7" />
<input type="checkbox" id="type" value="10" />
<input type="checkbox" id="type" value="11" />
<input type="checkbox" id="type" value="15" />
<input type="checkbox" id="type" value="17" />
<input type="checkbox" id="type" value="20" />


但是根据我的控制台日志,“Here”为每一个出现,它为什么这样做?

您可以检查
$。inArray
没有返回值
-1
,这意味着找不到。此外,还需要使用
parseInt
将复选框的值转换为
integer

演示代码

var o=[11,17,5];
$。每个($(“输入[type=checkbox]”),函数(x,y){
var value=parseInt($(y).val())//解析为整数
//检查返回值是否不是-1(找到的平均值)
如果($.inArray(值,o)!=-1){
log(“此处----”+值);
}否则{
console.log(“不在这里”);
}
});

您可以检查
$。inArray
没有返回值
-1
,这意味着找不到。此外,还需要使用
parseInt
将复选框的值转换为
integer

演示代码

var o=[11,17,5];
$。每个($(“输入[type=checkbox]”),函数(x,y){
var value=parseInt($(y).val())//解析为整数
//检查返回值是否不是-1(找到的平均值)
如果($.inArray(值,o)!=-1){
log(“此处----”+值);
}否则{
console.log(“不在这里”);
}
});

您交换了
$.inArray()
方法的参数

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

:要搜索的值

数组:用于搜索的数组

fromIndex(可选):开始搜索的数组的索引。默认值为0,它将搜索整个数组

给定文档中的每个ID都应该是唯一的,但多个元素可以具有相同的
名称
属性。此外,如@swati所述,您需要将值转换为
整数
,因为数组的元素是
整数

演示

var o=[11,17,5];
$。每个($(“输入[type=checkbox][name=type]”)函数(x,y){
var value=+y.value;//或parseInt(y.value)
如果($.inArray(值,o)>-1){
log(“此处----”+值);
}否则{
console.log(“不在这里”);
}
});

您交换了
$.inArray()
方法的参数

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

:要搜索的值

数组:用于搜索的数组

fromIndex(可选):开始搜索的数组的索引。默认值为0,它将搜索整个数组

给定文档中的每个ID都应该是唯一的,但多个元素可以具有相同的
名称
属性。此外,如@swati所述,您需要将值转换为
整数
,因为数组的元素是
整数

演示

var o=[11,17,5];
$。每个($(“输入[type=checkbox][name=type]”)函数(x,y){
var value=+y.value;//或parseInt(y.value)
如果($.inArray(值,o)>-1){
log(“此处----”+值);
}否则{
console.log(“不在这里”);
}
});