Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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 - Fatal编程技术网

使用javascript使用过滤器搜索表

使用javascript使用过滤器搜索表,javascript,jquery,html,Javascript,Jquery,Html,我想使用基于列的选择过滤器创建搜索框 我已经创建了这个 但我无法搜索“全部选择”列。这将替换注释//全部: 我对您的代码做了一些更改,现在正在运行。您可以在下面找到解决方案:。我可以建议您对代码稍加修改,以提高可读性 干杯 * { 框大小:边框框; } 我的输入{ 背景图片:url'/css/searchicon.png'; 背景位置:10px 10px; 背景重复:无重复; 宽度:100%; 字体大小:16px; 填充:12px 20px 12px 40px; 边框:1px实心ddd; 边缘

我想使用基于列的选择过滤器创建搜索框 我已经创建了这个
但我无法搜索“全部选择”列。

这将替换注释//全部:


我对您的代码做了一些更改,现在正在运行。您可以在下面找到解决方案:。我可以建议您对代码稍加修改,以提高可读性

干杯

* { 框大小:边框框; } 我的输入{ 背景图片:url'/css/searchicon.png'; 背景位置:10px 10px; 背景重复:无重复; 宽度:100%; 字体大小:16px; 填充:12px 20px 12px 40px; 边框:1px实心ddd; 边缘底部:12px; } 我的桌子{ 边界塌陷:塌陷; 宽度:100%; 边框:1px实心ddd; 字号:18px; } 我的表th,我的表td{ 文本对齐:左对齐; 填充:12px; } myTable tr{ 边框底部:1px实心ddd; } myTable tr.header,myTable tr:hover{ 背景色:F1F1; } 我的顾客 名称 国 全部的 名称 国 阿尔弗雷德·福特基斯特 德国 伯格伦兹蛇 瑞典 岛屿贸易 英国 科尼格利希·埃森 德国 笑巴克斯酒窖 加拿大 马加兹尼营养不良 意大利 北/南 英国 巴黎特色酒店 法国 函数myFunction{ var输入,过滤器,表格,tr,td,i,选择Z; 输入=document.querySelectormyInput; filter=input.value.toUpperCase; table=document.getElementByIdmyTable; tr=document.querySelectorAlltr; selectz=document.getElementByIdmyselect2.options[document.getElementByIdmyselect2.selectedIndex].value; 如果选择Z==2{ forEachfunctionrow{ var content=row.innerHTML.toUpperCase, 显示='无'; ifcontent.indexOffilter!=-1{ 显示=; } row.style.display=显示; }; }否则{ 对于i=0;i-1{ tr[i].style.display=; }否则{ tr[i].style.display=none; } } } } }
您可以在selectz==2的情况下使用此选项

for (i = 1; i < tr.length; i++) {

    if (tr.textContent.toUpperCase().indexOf(filter) > -1) {
        tr[i].style.display = "";
    } else {
        tr[i].style.display = "none";
    }

} 

当您遍历行时,您应该遍历列。。告诉我你已经试过了。@AlexanderChandra是的!因为i=1。。。不包括作为标题的第一行。那么将其更改为fori=0就行了吗?但是我做了,但它没有work@AlexanderChandra不,这是因为i=0。。。标题行消失了。现在我确定了答案,应该是I=1。。。喜欢新版的答案。不客气!我感觉你刚刚开始学习JS。到时候你会学到更好的方法。
for (i = 1; i < tr.length; i++) {

    if (tr.textContent.toUpperCase().indexOf(filter) > -1) {
        tr[i].style.display = "";
    } else {
        tr[i].style.display = "none";
    }

}