Javascript 使用jQuery更改事件筛选表,但正在处理页面上的每个表
我使用change事件过滤页面上的表,但由于某些原因,它会作用于页面上的每个表 代码如下: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) {
<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不希望它影响每个表,只影响他们找到的表。所以你需要把它们一起拿出来。