Javascript 使用jQuery更改事件筛选表,但正在处理页面上的每个表

Javascript 使用jQuery更改事件筛选表,但正在处理页面上的每个表,javascript,jquery,html,html-table,onchange,Javascript,Jquery,Html,Html Table,Onchange,我使用change事件过滤页面上的表,但由于某些原因,它会作用于页面上的每个表 代码如下: <script> $('#inputFilter').change(function() { var that = this; $.each($('tr'), function(i, val) { if ($(val).text().indexOf($(that).val()) == -1) {

我使用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')。更改(函数(){
var=这个;
$。每个($('tr'),
函数(i,val){
if($(val).text().indexOf($(that).val())==-1){
$('#数据_fm_op')。设置动画({
玛金托普:0
},
50,
函数(){
$('tr').eq(i).hide();
});
}否则{
$('#数据_fm_op')。设置动画({
玛金托普:0
},
50,
函数(){
$('tr').eq(i).show();
});
}
});
});
其中,
inputFilter
是过滤器输入的id,
data\u fm\u op
是表的id

为什么它会影响所有表

$.each($('tr'),
迭代页面上的每个
。换成

$.each($('#data_fm_op').find('tr'), 
要仅获取
#data\u fm\u op

的行,因为您使用$。each(“tr”),您有表格的put 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>

$('#inputFilter')。更改(函数(){
var=这个;
$('#data_fm_op')。find('tr')。每个(函数(i,val){
if($(val).text().indexOf($(that).val())==-1){
$('#数据_fm_op')。设置动画({
玛金托普:0
},
50,
函数(){
$('tr').eq(i).hide();
});
}否则{
$('#数据_fm_op')。设置动画({
玛金托普:0
},
50,
函数(){
$('tr').eq(i).show();
});
}
});
});

您是否可以尝试用$替换$。each(此)。each?如果我理解正确,OP不希望它影响每个表,只影响他们找到的表。所以你需要把它们一起拿出来。