2013-10-21 25 views
0

我使用下面的代碼作爲過濾器,但每次我尋找的東西,它逐行進行,表頭消失。我怎麼才能讓它只能看到身體的信息並保持頭部?使用jQuery onChange事件過濾器是過濾表頭,而不僅僅是表格主體

<script> 
$('#inputFilter').change(function() { 
     var that = this; 
     $.each($('tr'), 
     function(i, val) { 
      if ($(val).text().indexOf($(that).val()) == -1) { 
       $('#data_fm_op').animate({ 
        marginTop: 0 
       }, 
       50, 
       function() { 
        $(this).find('tr').eq(i).hide(); 
       }); 
      } else { 
       $('#data_fm_op').animate({ 
        marginTop: 0 
       }, 
       50, 
       function() { 
        $(this).find('tr').eq(i).show(); 
       }); 
      } 
     }); 
    }); 
    </script> 

inputFilter是濾波器的輸入的ID和data_fm_op是表的ID。

+1

將選擇器更改爲只查看主體中的行:'tbody> tr',或省略包含'th's'的行:'tr:not(:has(th))' – billyonecan

回答

3

我建議你使用<thead></thead><tbody></tbody>和發動對過濾器$.each($('tbody tr')

0

能否請您發表您的HTML代碼,它會幫助你給你的答案更好的辦法

試試這個

<script> 
$('#inputFilter').change(function() { 
     var that = this; 
     $.each($('tr'), 
     function(i, val) { 
      if ($(val).text().indexOf($(that).val()) == -1) { 
       $('#data_fm_op').animate({ 
        marginTop: 0 
       }, 
       50, 
       function() { 
        if(i != 0) 
         $(this).find('tr').eq(i).show(); 

       }); 
      } else { 
       $('#data_fm_op').animate({ 
        marginTop: 0 
       }, 
       50, 
       function() { 
        if(i != 0) 
         $(this).find('tr').eq(i).show(); 
       }); 
      } 
     }); 
    }); 
    </script>