2011-11-04 35 views
0

我在我的頁面上有這個綁定。該頁面顯示一個項目表。每行的data-navn屬性設置爲與第一列相同,只有全部小寫。這個列表可能很長,所以我想創建一些過濾。我創建了一個文本框,並附加了這個事件處理程序。這是創建列表過濾器方法的不好方法嗎?

這是一個很好的方法來做到這一點?這似乎有點哈克:)

$("#filter").bind('keyup', function() { 
     var t = $("#filter").val(); 
     if (t == "") { 
      $(".row").show(); 
     } else { 
      $(".row").hide(); 
      $('.row[data-navn*="' + t + '"]').show(); 
     } 
    }); 

(我已經有jQuery的打算在此頁。)

+0

對我來說看起來很好,但是我會用'.filter'來代替屬性選擇器,這樣它就可以找到具有使用jQuery的'.data()'方法設置的數據屬性的行。 –

+0

我不太確定我關注... tr的data-navn屬性僅在頁面生成時設置。 –

回答

0

這是蠻力,但是如果名單是足夠小,它的工作效率那麼我認爲這是精細。如果你開始發現性能滯後,那麼你可以考慮一些優化。這些就是我能想到的。

  1. 至少等到兩個或三個字符已經被過濾
  2. 緩存顯示/隱藏項目,jQuery不會做每一通全查找當前列表之前輸入。
+0

該列表永遠不會很長。最多10-20個條目。 –

相關問題