我有一個應用程序,它提供了一個表中的客戶端列表。該表中有485行。在thead
中有一個文本框,允許用戶過濾出現在文本框列中輸入的值。似乎只要用戶在這些字段中的一個字段中輸入字母,Firefox就會顯示有關腳本沒有響應的提示。jQuery列過濾器
在任何人提出建議之前,分頁不是一個選項 - 它的想法是顯示完整的客戶端列表,然後用戶過濾某個列中的某個值。
目前我使用下面的方法來過濾每一列:
$inputs.keyup(function() {
$header = $(this).closest("th").attr("data-header-name");
$table = $(this).closest("table").find("tbody");
$rows = $table.find("tr");
$rows.not(":visible").show(0);
$input = $(this);
if(!($.trim($input.val())) == "") {
$rows.filter(function(i) {
return ($(this).find("td").filter(function() {
return ($(this).attr("headers") == $header)
}).html().toLowerCase().indexOf($input.val().toLowerCase()) == -1);
}).hide(0);
}
});
有沒有人對如何改進這一點,以便它是快了很多什麼想法嗎?提前致謝。
問候, 理查德
你檢查過jQuery數據表http://datatables.net/? – Rodolfo
嗨Rodolfo,既然已經有人建議我可以研究一下(特別是因爲這很快就會被需要)。我不得不承認我知道這種插件,但不想將其視爲一種選擇,因爲我喜歡自己學習這些東西並提高自己的知識。 – ClarkeyBoy
看看http://www.picnet.com.au/picnet-table-filter.html。即使你不想這樣使用,你也可以查看代碼,看看它是如何以最佳方式完成的。 〜500行似乎並不太多,雖然沒有查看示例HTML,但很難說。你能爲此創建一個小提琴嗎? –