Javascript 如何使用jQuery.inArray()在数组包含传递的值时显示警报?

Javascript 如何使用jQuery.inArray()在数组包含传递的值时显示警报?,javascript,jquery,arrays,input,Javascript,Jquery,Arrays,Input,我将textbox的值存储在一个数组中。然后,我将这些值通过逗号分隔的值拆分存储在一个数组中 当我在ExistsInArray函数中传递一个值时,我没有收到警报 <input value="1,2,3,4" id="someid"> 您正在调用自身内部的ExistsInArray() 试着把它放在外面: function ExistsInArray(id) { if (jQuery.inArray(id, myarray) !== -1) { alert('id');

我将textbox的值存储在一个数组中。然后,我将这些值通过逗号分隔的值拆分存储在一个数组中

当我在
ExistsInArray
函数中传递一个值时,我没有收到警报

<input value="1,2,3,4" id="someid">

您正在调用自身内部的
ExistsInArray()

试着把它放在外面:

function ExistsInArray(id) {
  if (jQuery.inArray(id, myarray) !== -1) {
    alert('id');
  }
}
ExistsInArray(3);

您有几个问题:

  • id
    变量传递给
    alert()
    ,而不是字符串,例如
    alert(id)
  • ExistsInArray()
    调用移到自身之外-您正在创建一个无限循环
  • 您为函数提供了一个int值,但数组包含字符串
试试这个:

var txtboxVal = $("#someid").val();
var myarray = txtboxVal.split(",")

function ExistsInArray(id) {
    if ($.inArray(id, myarray) !== -1) {
        alert(id);
    }
}

ExistsInArray('3'); // note the quotes here

不确定
inaray
如何工作,但您将参数作为数字传递,但拆分的值是string..或
txtboxVal.split(“,”).map(数字)
“3”
!==<代码>3
值之间的比较是严格的
这就是为什么
jQuery.inArray(id.toString(),myarray)
会修复它
var txtboxVal = $("#someid").val();
var myarray = txtboxVal.split(",")

function ExistsInArray(id) {
    if ($.inArray(id, myarray) !== -1) {
        alert(id);
    }
}

ExistsInArray('3'); // note the quotes here