使用jQuery onChange事件过滤是过滤表头,而不仅仅是表体

时间:2013-10-21 14:15:52

标签: javascript jquery html filter

我使用以下代码作为过滤器,但每次我寻找的东西,它逐行,表头消失。我怎样才能让它只查找身体中的信息并保持头脑?

<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。

2 个答案:

答案 0 :(得分:3)

我建议您使用<thead></thead><tbody></tbody>并在$.each($('tbody tr')上启动过滤器

答案 1 :(得分: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>