Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在表中按多行进行Javascript筛选_Javascript_Jquery_Html Table_Dom Events - Fatal编程技术网

在表中按多行进行Javascript筛选

在表中按多行进行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=“

我试图使过滤器,将过滤器的基础上,多个输入。一个输入将在一列中过滤

我的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=“”;
}否则{
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循环等。当然,这取决于你。无论如何,这很好,因为我已经有一天半的时间无法做类似的事情了,而你想出了相当简单的解决方案:)。多谢各位