表格查找(样式省略)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表格查找</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="搜索公司...">
<table id="myTable">
<tr class="header">
<th style="width:60%;">公司名称</th>
<th style="width:40%;">国家</th>
</tr>
<tr> <td>Alfreds Futterkiste</td> <td>Germany</td> </tr>
<tr> <td>Berglunds snabbkop</td> <td>Sweden</td> </tr>
<tr> <td>Island Trading</td> <td>UK</td> </tr>
<tr> <td>Koniglich Essen</td> <td>Germany</td> </tr>
</table>
</body>
<script>
function myFunction() {
let input = document.getElementById("myInput");
let filter = input.value.toUpperCase();
let table = document.getElementById("myTable"); //选中table
let tr = table.getElementsByTagName("tr"); //选中table标签中所有的tr元素
// 循环表格每一行,查找匹配项
for (let i = 0; i < tr.length; i++) {
let td = tr[i].getElementsByTagName("td")[0]; //依次获得一行中的包含公司名称的td标签
if (td) {
if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
//td.innerHTML 获取所得td标签之间的内容,即公司名称
//toUpperCase() 将公司名称变为大写形式
//indexOf(filter) filter为我们所输入的搜索目标,indexof()函数是查找td.innerHTML.toUpperCase()中是否含有filter,若有返回其第一个字符的位置,否则返回-1
tr[i].style.display = ""; //找到则显示
} else {
tr[i].style.display = "none"; //未找到,不再显示
}
}
}
}
</script>
</html>
![]()
![]()