2014-10-09 56 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