2012-12-27 52 views
1

我想根據數據屬性篩選表格,而不是根據td標記中的值篩選表格。帶有jQuery數據屬性的篩選器表

的問題是,我不能得到它的工作,因爲我總是得到這個錯誤:

Uncaught TypeError: Cannot call method 'match' of undefined

$(document).ready(function(){ 
    var elemens = $("td") 
    searchInput = $("#search") 
    searchInput.on('keyup',function(){ 

     elemens.each(function(){ 

      var re = new RegExp(searchInput.val(), 'gi'); 
      if($(this).data('gui').match(re) === null) 
      { 
       $(this).parent('tr').hide(); 
      }else{ 
       $(this).parent('tr').show(); 
      } 

     });     
    }); 
});​ 

我的小提琴: http://jsfiddle.net/T57ba/3/

回答

3

的數據屬性都在tr不是td,.data()也會轉換適用的類型,在這個例子中是數字。而是使用.attr()

$(document).ready(function(){ 
    var elemens = $("tr") 
    searchInput = $("#search") 
    searchInput.on('keyup',function(){    
     elemens.each(function(){     
      var re = new RegExp(searchInput.val(), 'gi'); 
      if($(this).attr('data-gui').match(re) === null){ 
       $(this).hide(); 
      } 
      else{ 
       $(this).show(); 
      } 

     });     
    }); 
});​ 

DEMO

+0

感謝,我知道我有TD和TR犯的錯,但你是什麼意思是。數據()會進行類型轉換? – intelis

+1

@ user1141356 http://api.jquery.com/data/#data-html5 – Musa

+0

哦,我明白了,謝謝 – intelis