<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」は行方不明です。
私が値2を選択した場合、これは私には「いいえ」と表示されますが、「2」は中にあります。
私が値5を選択した場合、これは「はい」と表示されます - これだけはOKです。どうして?
LIVE:
ありがとうございましたが、なぜ2と5が他の値でしたか? –
1は-1と評価されます。 2は0に評価されます。5は1と評価されます.Javascriptでは暗黙的に0とみなされます。 –
@GryzOshea配列内の要素 '2'のインデックスは0です.Javascript(および他の多くの言語)では 'false'値です。そのため、その要素に対して 'if'条件が失敗するのです。 –