【发布时间】:2018-04-02 18:04:54
【问题描述】:
我想知道这个搜索栏是否有一种方法可以用来显示多个元素。现在,如果我在具有“321”“1234”“123”“12345”的池中搜索“123”,唯一显示的值将是第一个值:“1234”。我希望显示与我的搜索匹配的所有值,因此这将是正确的搜索结果:“1234”“123”“12345”。
感谢任何答案。
这是我拥有的当前代码:
var cells = document.querySelectorAll("#myTable td");
var search = document.getElementById("myInput");
search.addEventListener("keyup", function() {
if (search.value.length > 0 && search.value != '') {
for (var i = 0; i < cells.length; ++i) {
if (cells[i].textContent.toLowerCase().indexOf(search.value.toLowerCase()) === 0) {
cells.forEach(function(element) {
element.style.display = "none";
});
cells[i].style.display = "table-cell";
break;
} else {
cells.forEach(function(element) {
if (cells[i] !== element) {
element.style.display = "table-cell";
}
});
}
}
} else {
cells.forEach(function(element) {
if (cells[i] !== element) {
element.style.display = "table-cell";
}
});
}
});
<input id="myInput">
<table id="myTable">
<tr>
<td>321</td>
<td>123</td>
</tr>
<tr>
<td>1234</td>
<td>abc</td>
</tr>
<tr>
<td>12345</td>
<td>abcde</td>
</tr>
</table>
【问题讨论】:
标签: javascript html search html-table