jQuery.inArray()未按预期工作
我做错了什么?我的想法是,我可以将箭头键按下与其他任何键分开,但每次按下都会触发警报“你按下了箭头键”。任何帮助都会很好 此处或:jQuery.inArray()未按预期工作,jquery,Jquery,我做错了什么?我的想法是,我可以将箭头键按下与其他任何键分开,但每次按下都会触发警报“你按下了箭头键”。任何帮助都会很好 此处或: <input id='foo'> <script> $('#foo').keyup(function (e) { var key = e.keyCode; if ($.inArray(key, [37, 38, 39, 40])) { alert('you pressed an arrow key');
<input id='foo'>
<script>
$('#foo').keyup(function (e) {
var key = e.keyCode;
if ($.inArray(key, [37, 38, 39, 40])) {
alert('you pressed an arrow key');
} else {
alert("you didn't press an arrow key");
}
});
</script>
$('#foo').keyup(函数(e){
var key=e.keyCode;
如果($.inArray(键[37,38,39,40])){
警报(“您按下了箭头键”);
}否则{
警报(“您没有按箭头键”);
}
});
您必须检查它是否返回索引>-1。如果数组中没有出现键,则索引为-1:
if ($.inArray(key, [37, 38, 39, 40]) > -1)
jQuery inArray函数返回值的索引。对于左箭头键(37),它返回0,并被解释为false。您应该将代码更改为>=0
if ($.inArray(key, [37, 38, 39, 40]) > -1)
如果元素在数组中,$.inArray方法返回该元素的索引,如果元素不在数组中,则返回-1,因此不能将其用作if条件。将其更改为:
if($.inArray(key, [37, 38, 39, 40]) >= 0)) {
}
.inArray()
返回索引,而不是布尔值。请确保阅读Previor。可能的重复项是重复项,抱歉,但我想检查密钥是否在数组中。这是可能的,还是我只是颠倒了函数的逻辑?如果该函数返回的索引大于-1,则表示键在数组中。换句话说,如果上面的值在数组中,它将返回true。谢谢,我的错误是我认为它返回一个布尔值