将滤镜应用于除第一行之外的所有行

时间:2018-06-13 05:18:26

标签: javascript jquery html

我正在尝试在动态html表上应用多个过滤器。它工作正常,但第一行包含像empID,Name等标题。它不能被视为仅被认为是。我试过这样的东西,但它没有用。

$(document).ready(function(){
    var $rows = $('#tblData tr');
    console.log("akshansh");
    $('#empId, #empName,#status').on('input', function() {
        var val1 = $.trim($('#empId').val()).replace(/ +/g, ' ').toLowerCase();
        var val2 = $.trim($('#empName').val()).replace(/ +/g, ' ').toLowerCase();
        var val3= $.trim($('#status').val()).replace(/ +/g, ' ').toLowerCase();
        $rows.show().filter(function() {
            var text1 = $(this).find('tr:not(:first),td:nth-child(1)').text().replace(/\s+/g, ' ').toLowerCase();   
            var text2 = $(this).find('tr:not(:first),td:nth-child(2)').text().replace(/\s+/g, ' ').toLowerCase();
            var text3 = $(this).find('tr:not(:first),td:nth-child(n+2)').text().replace(/\s+/g, ' ').toLowerCase();
            return !~text1.indexOf(val1) || !~text2.indexOf(val2)|| !~text3.indexOf(val3);
        }).hide();
    }); 
});

此外,第三列是日期字段,那么我是否可以按日期过滤数据?

2 个答案:

答案 0 :(得分:1)

你错过了:在第一个孩子之前

$("#tblData tr:not(:first-child)").hide(); 

答案 1 :(得分:0)

将表格结构化为

 <table id='tblData'>
     <thead>
         <tr></tr>
     </thead>
     <tbody>
     </tbody>
 </table>

将第一行放入thead中,然后将其余部分放入tbody中。

这将使您有资格获得jquery

var $rows = $('#tblData tbody tr');