2011-11-04 40 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个条目。 –

相关问题