在表中按多行进行Javascript筛选
我试图使过滤器,将过滤器的基础上,多个输入。一个输入将在一列中过滤 我的JavaScript代码(&C):在表中按多行进行Javascript筛选,javascript,jquery,html-table,dom-events,Javascript,Jquery,Html Table,Dom Events,我试图使过滤器,将过滤器的基础上,多个输入。一个输入将在一列中过滤 我的JavaScript代码(&C): 函数myFunction(列,输入){ var过滤器,表格,tr,td,i,txtValue; filter=input.value.toUpperCase(); table=document.getElementById(“myTable”); tr=table.getElementsByTagName(“tr”); 对于(i=0;i-1){ tr[i].style.display=“
函数myFunction(列,输入){
var过滤器,表格,tr,td,i,txtValue;
filter=input.value.toUpperCase();
table=document.getElementById(“myTable”);
tr=table.getElementsByTagName(“tr”);
对于(i=0;i-1){
tr[i].style.display=“”;
}否则{
tr[i].style.display=“无”;
}
}
}
}
输入1
输入2
投入3
输入4
输入5
输入6
1.
2.
3.
4.
5.
6.
大约1-a
大约2-a
大约3-a
大约4-a
大约5-a
大约6-a
大约1-b
大约2-b
大约3-b
大约4-b
大约5-b
大约6-b
一些1-c
一些2-c
一些3-c
一些4-c
大约5-c
大约6-c
一些1-d
一些二维的
一些三维的
一些4-d
一些5-d
大约6-d
函数myFunction(列,输入){
var过滤器,表格,tr,td,i,txtValue;
filter=input.value.toUpperCase();
控制台日志(过滤器);
table=document.getElementById(“myTable”);
tr=table.getElementsByTagName(“tr”);
对于(i=0;i-1){
if(tr[i].style.display!=“none”)//如果某些内容已被上一个筛选器隐藏,则不希望显示它
tr[i].style.display=“”;
}否则{
tr[i].style.display=“无”;
}
}
}
}
输入1
输入2
投入3
1.
2.
3.
4.
5.
6.
大约1-a
大约2-a
大约3-a
大约4-a
大约5-a
大约6-a
大约1-b
大约2-b
大约3-b
大约4-b
大约5-b
大约6-b
一些1-c
一些2-c
一些3-c
一些4-c
大约5-c
大约6-c
一些1-d
一些二维的
一些三维的
一些4-d
一些5-d
大约6-d
试试下面的方法。使用onkeyup
而不是onkeydown
。使用myFunction
而不使用参数
,因为我们需要对所有输入应用过滤器
将id
添加到每个输入
中,并在过滤器
数组中检索它们的值。添加了用于解释逻辑的注释
在下面试试
函数myFunction(){
var tr、td、i、txtValue;
table=document.getElementById(“myTable”);
tr=table.getElementsByTagName(“tr”);
//获取所有筛选器值。
//使用isApplyFilter获取是否为筛选器提供了任何输入。
让过滤器=[],
isApplyFilter=false;
对于(i=0;i<6;i++){
filters.push($('#input'+(i+1)).val().toUpperCase().trim());
isApplyFilter=isApplyFilter | |!!过滤器[i];
}
//循环所有tr,第一个除外,因为它是标题。
对于(i=1;i-1){
tr[i].style.display=“”;
打破
}
}
}
}
}
输入1
输入2
投入3
输入4
输入5
输入6
1.
2.
3.
4.
5.
6.
大约1-a
大约2-a
大约3-a
大约4-a
大约5-a
大约6-a
大约1-b
大约2-b
大约3-b
大约4-b
大约5-b
大约6-b
一些1-c
一些2-c
一些3-c
一些4-c
大约5-c
大约6-c
一些1-d
一些二维的
一些三维的
一些4-d
一些5-d
大约6-d
哇,谢谢,这真是一个聪明而简单的解决方案。非常感谢。这不是很聪明,但很有效:)我建议你重构一下,不过-将这些古老的“for”循环改为forEach循环等。当然,这取决于你。无论如何,这很好,因为我已经有一天半的时间无法做类似的事情了,而你想出了相当简单的解决方案:)。多谢各位