2014-09-22 68 views
1

我有一個通過打字輸入jQuery的:可見的:奇選擇器工作不正常

$('#searchBox').keyup(function() { 
     var key = $(this).val(); 
     filterBySearchBox(key); 
     $('#adminTable tr').removeClass("odd"); 
     $('#adminTable tr:visible:odd').addClass("odd"); 
    }); 

功能隱藏不輸入匹配濾波器行的表的功能,然後,我想重新風格與交替行顏色的表。目前,當使用者進入鑰匙時,造型表現非常不正常,偶爾工作。過濾器工作正常。

p.s.我使用IE9

編輯 我filterBySearchBox功能低於

function filterBySearchBox(key) { 
    var $rows = $('#adminTable tr:visible'); 
    var val = $.trim(key).replace(/ +/g, ' ').toLowerCase(); 
    $rows.show().filter(function() { 
     var text = $(this).text().replace(/\s+/g, ' ').toLowerCase(); 
     return !~text.indexOf(val); 
    }).hide(); 
} 
+4

我想您應該添加相關的html代碼 – afzalex 2014-09-22 11:13:27

+0

如果您想要一個完整的解決方案,還需要在'filterBySearchBox'中提供代碼:) – 2014-09-22 11:17:56

+0

按搜索框過濾運行一些Ajax?如果是這樣的話,您可能想要在ajax – Pete 2014-09-22 11:19:50

回答

1

看看這段代碼,這可能會滿足你的需要:

jQuery("table tr:even").css("background-color", "red"); 
 
jQuery("table tr:odd").css("background-color", "yellow"); 
 

 
$("#filter").keyup(function() { 
 
    jQuery("table tbody tr").show(); 
 
    jQuery("table td:contains('"+$("#filter").val()+"')").parent().hide(); 
 
    var $trs = jQuery("table tbody tr:visible"); 
 
    $trs.filter(":even").css("background-color", "red"); 
 
    $trs.filter(":odd").css("background-color", "yellow"); 
 
});
table { 
 
    border: 1px solid black; 
 
    border-collapse: collapse; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> 
 
<input type="text" id="filter" value=""> 
 
<table> 
 
    <tr><td>Item 1</td></tr> 
 
    <tr><td>Item 2</td></tr> 
 
    <tr><td>Item 3</td></tr> 
 
    <tr><td>Item 4</td></tr> 
 
    <tr><td>Item 5</td></tr> 
 
</table>