2013-02-14 60 views
0

我试图搜索一个HTML中的选项中进行选择以找到选项具有以阵列搜索使用JavaScript在选择框中的值/ jQuery的

例如匹配任何元素值,我有整数值的数组像这样:

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> 

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

$('#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); 

试图作品

我在做什么错在这里?

回答

2

值转换为多个第一:

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

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

DEMO

+0

当你知道它总是简单的。谢谢 – 2013-02-14 11:04:54

0

声明数组,因为这

var arrTaken = ['641', '640'];