0

我正在尝试在 HTML 选择中搜索选项以查找哪些选项的值与数组中的任何元素匹配

例如,我有一个整数值数组,如下所示:

var arrTaken = [641, 640];

我有一个这样的选择元素:

<select id="Substance3" name="Substance_3">
<option value="640">A</option>
<option value="641">B</option>
<option value="642">C</option>
<option value="643">D</option>
<option value="644">E</option>
</select>

然后我遍历 select 上的选项,试图找到任何匹配的元素值:

$('#Substance3 > option').each(function(index, element)
{
    console.log('current element value is: ' + element.value);
    var index = arrTaken.indexOf(element.value);
    console.log('element is at index: ' + index);
});

问题是索引返回为 -1,这意味着在数组中找不到该值。但是,尝试与

var index = arrTaken.indexOf(640);

作品

我在这里做错了什么?

4

2 回答 2

2

首先将值转换为数字:

 var index = arrTaken.indexOf(+element.value);
 //                           ^ unary plus

.indexOf使用严格相等比较(与 相同===)。element.value返回一个字符串,而您的数组包含数字。

演示

于 2013-02-14T11:00:29.143 回答
0

将数组声明为 this

var arrTaken = ['641', '640'];
于 2013-02-14T11:08:21.810 回答