Javascript 如何使用jQuery.inArray()在数组包含传递的值时显示警报?
我将textbox的值存储在一个数组中。然后,我将这些值通过逗号分隔的值拆分存储在一个数组中 当我在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');
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