javascript - 如何 - 在纯 javascript 中过滤/搜索表
问题描述
使用纯 JavaScript 搜索表。我试过下面的功能。这个函数有什么问题?
function myFunction() {
var input, filter, table, tr, td, i, txtValue;
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];
if (td) {
txtValue = td.textContent || td.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
}else{
tr[i].style.display = "none";
}
}
}
}
解决方案
我没有看到您的代码似乎工作的问题
function myFunction() {
var input, filter, table, tr, td, i, txtValue;
input = document.getElementById("myInput");
//filter = input.value.toUpperCase();
filter = '1'
table = document.getElementById("myTable");
tr = table.getElementsByTagName("tr");
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[0];
if (td) {
txtValue = td.textContent || td.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
}
else {
tr[i].style.display = "none";
}
}
}
}
setTimeout(myFunction, 1000)
<table id="myTable">
<tr>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>11</td>
<td>33</td>
</tr>
<tr>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>3</td>
<td>5</td>
</tr>
</table>
推荐阅读
- c++ - 模板代码的有效性是什么意思?
- sqlite - 无法从 UIWebView 和 WKWebview 访问相同的 SQLite 数据库
- python - 如何将打印件发送到以特定名称保存的 Word 文档?
- openapi - 如何在 Swagger2Markup API 要求中包含 JSON 正文 API 示例(从 Swagger YAML 转换时)?
- vb.net - 如何为我的用户控件上的属性创建一个列表以从中进行选择?
- regex - 微调正则表达式以在分隔符之间提取数据
- python - 如何将 JSON 数据发送到瓶子服务器并将值存储在 sqlite3 中?
- swift - 协议不符合从通用父类继承的类?
- python-3.x - 在 Lambda 中接收到模块的属性错误,但在本地机器上没有
- sql - 使用 LAG/LEAD 查找数据中的峰值会给出十年变化(即 9、99、999)以及正确的峰值