2011-03-14 44 views
0
$('#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'); 
    } 
}); 

我的HTMLjQuery的inArray只盯着第一個值

<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每一個的ID值的數組。簡單的東西。我也有一個輸入框。如果您輸入最近一個客戶的全名,我希望該客戶名稱突出顯示。所以我認爲jQuery.inArray會幫助這個,但它不起作用。如果我輸入數組的第一個值(「客戶端名稱1」),我會得到警報。但是,如果我在其後鍵入任何其他客戶端名稱(例如「客戶端名稱2」),則什麼也不會發生。

我在這裏可能會做錯什麼?

+0

你能告訴你的HTML? – Belinda

+0

鍵控代碼塊中缺失的右大括號是複製/粘貼錯誤,還是在實際代碼中? –

+0

我更新了我的代碼以包含實際的.keyup函數以及HTML。當我使用jQuery.each返回數組的數據時,它確實顯示我擁有的所有6個客戶端。 – dallen

回答

5

由於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'); 
}); 
+0

更多信息在[文檔](http://api.jquery.com/jQuery.inArray/):) –

+0

我曾嘗試過,但之後它根本沒有提醒我。所以如果沒有'> -1',我至少得到第一個鍵/值對,因此我得到了我的警報。用'> -1',我什麼也得不到。 – dallen

+0

@dallen - 這個建議是正確的,但是因爲你的id不是整數,所以你需要去掉'parseInt'。 –