0

ページ上のテーブルをフィルタリングするために change イベントを使用していますが、何らかの理由でページ上のすべてのテーブルに作用しています。

コードは次のとおりです。

<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") を使用しているため、table の 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 に答える