繁体   English   中英

jQuery inArray只看第一个值

[英]jQuery inArray only looking at first value

$('#client').keyup(function() {
    if ($('#client').val() != $('.recent_client').attr('id')) {
        $('.recent_client').removeClass('recent_client_active').addClass('recent_client_inactive');
    }
    else if (jQuery.inArray(parseInt($('#client').val()), client_ids)) {
        alert('IN ARRAY');
    }
});

我的HTML

<p><input type="text" name="client" id="client" placeholder="Click here and start typing your client name..."></p>

<div id="recent_clients">
<p><a href="#" class="recent_client recent_client_inactive" id="Client Name 1">Client Name 1</a><a href="#" class="recent_client recent_client_inactive" id="Client Name 2">Client Name 2</a><a href="#" class="recent_client recent_client_inactive" id="Client Name 3">Client Name 3</a><a href="#" class="recent_client recent_client_inactive" id="Client Name 4">Client Name 4</a><a href="#" class="recent_client recent_client_inactive" id="Client Name 5">Client Name 5</a><a href="#" class="recent_client recent_client_inactive" id="Client Name 6">Client Name 6</a></p>
</div>

我有一个数组,其中包含#recent_clients div中每个a的ID值。 简单的东西。 我也有一个输入框。 如果您键入最近一位客户的全名,我希望该客户名突出显示。 所以我以为jQuery.inArray可以解决这个问题,但是它不起作用。 如果键入数组的第一个值(“客户端名称1”),则会收到警报。 但是,如果我在其后键入任何其他客户端名称(例如“客户端名称2”),则什么都不会发生。

我在这里可能做错了什么?

由于inArray()的工作方式类似于indexOf,因此您应测试结果> -1

更新

    var client_ids = ['Client Name 1', 'Client Name 2', 'Client Name 3', 'Client Name 4', 'Client Name 5'];
$('#client').keyup(function() {
    if (jQuery.inArray($('#client').val(), client_ids) > -1) 
        $('#client').css('background-color','#00cc00');
    else
       $('#client').css('background-color','#cc0000');
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM