我正在使用PHP和MySQL构建一个HTML表。我正在尝试使用JavaScript过滤/搜索表格,并只显示包含我需要的结果的行。我想要JavaScript输入来搜索表格的多个<td>
。我能够得到这个工作,但它不会是一个优雅的解决方案,以放置更大的表。JavaScript单输入搜索多个html表列
我相信有更好的方法来选择正在搜索的内容,但一直没能找到任何东西。有没有人知道一种方法让我使这个代码更灵活适用于不同的列宽表?
function myFunction() {
var input, filter, table, tr, td, i;
input = document.getElementById("myInput");
filter = input.value.toUpperCase();
table = document.getElementById("myTable");
tr = table.getElementsByTagName("tr");
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[0];
td1 = tr[i].getElementsByTagName("td")[1];
if (td+td1) {
if ((td.innerHTML.toUpperCase().indexOf(filter)+td1.innerHTML.toUpperCase().indexOf(filter)) > -2) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}
}
}
}
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search" title="Type in anything">
<table id="myTable">
<tr class="header">
<th style="width:60%;">Name</th>
<th style="width:40%;">Country</th>
</tr>
<tr>
<td>North/South</td>
<td>UK</td>
</tr>
<tr>
<td>Paris specialites</td>
<td>France</td>
</tr>
</table>
'的JavaScript == Java' –
独立您的关注!构建一个为给定数据构建表格标记的函数,以及一个用于过滤数据的单独函数,然后使用第一个函数将表格标记替换为新数据。 – sauntimo
我不确定如何改变列宽适用于搜索功能。细胞的内容是重要的,而不是细胞的宽度。 –