0

我正在使用更改事件来过滤页面上的表格,但由于某种原因,它作用于页面上的每个表格。

这是代码:

<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() {
                    $('tr').eq(i).hide();
                });
            } else {
                $('#data_fm_op').animate({
                    marginTop: 0
                },
                50,
                function() {
                    $('tr').eq(i).show();
                });
            }
        });
    });
    </script>

其中inputFilter过滤器输入的data_fm_opid是表的id。

为什么它会影响所有表?

4

2 回答 2

1
$.each($('tr'),

遍历<tr />页面上的每个。将其更改为

$.each($('#data_fm_op').find('tr'), 

只获取#data_fm_op

于 2013-10-18T18:29:40.990 回答
0

因为您使用 $.each("tr"),所以您将平板电脑的 id 设置为:

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