2014-10-09 77 views
0

我正在盯着下面这段代码,它搜索一个htmltable,但无法弄清楚。任何人都可以请逐行解释它了解这个jQuery过滤器函数

(function ($) { 

    $('#filter').keyup(function() { 

     var rex = new RegExp($(this).val(), 'i'); 
     $('.employee tr').hide(); 
     $('.employee tr').filter(function() { 
      return rex.test($(this).text()); 
     }).show(); 

    }) 

}(jQuery)); 

另外我在我的表中有大约1000行。如果我使用此代码,性能方面是否存在任何问题?

+0

回应你关于性能的问题,你可以将'hide'和'filter'命令链接在一起,以防止重复的DOM查找 – Stryner 2014-10-09 02:19:20

+0

@Ninsly谢谢。你能说明一下吗? – CuriousDev 2014-10-09 03:07:41

+0

你是不是这个意思? $('。employee tr')。hide()。filter(function(){ – CuriousDev 2014-10-09 03:09:00

回答

0

3号线:当一个键被释放(当你把你的手指关闭按键)

5号线:创建匹配到已输入到滤波器的输入框中的字符串正则表达式对象。

6号线:隐藏的每一位员工行

行7-9:这需要每一位员工行和应用的过滤器。过滤器中的函数应用于employee表的每一行,并根据其文本是否与正则表达式匹配(使用过滤器输入的值)来返回true或false。所有返回true的过滤器结果然后让.show()调用它们。

+0

真棒解释! – CuriousDev 2014-10-09 02:19:18