<select id="select">
<option value="1">1adsd</option>
<option value="2">2adsd</option>
<option value="3">3adsd</option>
<option value="4">4adsd</option>
<option value="5">5adsd</option>
</select>
var parray = ['2', '5'];
$("#select").live('change', function(){
if($.inArray($(this).val(), parray)){
console.log('yes');
console.log($(this).val());
console.log(parray);
} else {
console.log('no');
console.log($(this).val());
console.log(parray);
}
})
为什么这不能正常工作?如何在jQuery中工作inArray?
如果我选择值1这显示我'是'但“1”不是在parray。
如果我选择值2这显示我'不',但“2”是在parray。
如果我选择值5这表明我'是' - 只有这是好的。为什么?
LIVE:
谢谢,但为什么2和5是其他值? – 2012-03-27 22:34:16
1将评估为-1。 2将评估为0. 5将评估为1.只有0被Javascript隐含地视为错误。 – 2012-03-27 22:36:22
@GryzOshea数组中的元素'2'的索引是0,在Javascript(以及许多其他语言)中,这是'false'值。这就是为什么'if'条件失败的原因。 – 2012-03-27 22:37:20