数组indexof()
不适用于动态值。
如果使用如下:
var arr ='1,2,3,4,';
del_row = arr.slice(0,-1);
del_array = del_row.split(',');
var a = del_array.indexOf('2');
它有效,但我使用的是:
for(var i='1';i<=rowcnt;i++) {
var del_row = $('#hid_delrow').val();
if(del_row != ''){
del_row = del_row.slice(0,-1);
del_array = del_row.split(',');
del_length = del_array.length;
var a = del_array.indexOf(i);
//var a = $.inArray(i,del_array)
if(a != '-1'){
continue;
}
}
}
它不工作,我也尝试:
del_array.indexOf(parseInt(j, 10));
和
$.inArray(j,del_array);
all将值返回为-1。帮助我。
答案 0 :(得分:2)
del_array
的值是一个字符串数组。
indexOf
将起作用 - indexOf('2')
- 但是在传递int indexOf(i)
时则不行。您将其声明为var i = '1'
这一事实并不足以使其成为字符串,因为您继续对其执行整数运算(i++
)。
您需要将整数设为字符串:
var a = del_array.indexOf(i.toString());
...或者使del_array
成为整数列表:
del_array = del_array.map(function(x) { return parseInt(x); });
var a = del_array.indexOf(i);
答案 1 :(得分:0)
indexof()的简单示例是: -
<script>
var arr = ['a', 'b', 'c', '123', 'xyz'];
console.log("Array index"+" "+arr.indexOf('b'));
alert("Array index"+" "+arr.indexOf('b'));
</script>