使用js 实现一个可以搜索的表格 搜索整个表格
时间: 2024-05-14 20:12:37 浏览: 68
以下是一个简单的实现,使用了原生 JavaScript 和 HTML:
```html
<!DOCTYPE html>
<html>
<head>
<title>Search Table</title>
</head>
<body>
<input type="text" id="searchInput" placeholder="Search...">
<table id="dataTable">
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>Gender</th>
</tr>
</thead>
<tbody>
<tr>
<td>John Doe</td>
<td>25</td>
<td>Male</td>
</tr>
<tr>
<td>Jane Smith</td>
<td>30</td>
<td>Female</td>
</tr>
<tr>
<td>Bob Johnson</td>
<td>40</td>
<td>Male</td>
</tr>
</tbody>
</table>
<script>
// 获取表格和搜索框元素
var dataTable = document.getElementById("dataTable");
var searchInput = document.getElementById("searchInput");
// 添加事件监听器,当搜索框输入内容时触发
searchInput.addEventListener("input", function() {
var searchText = searchInput.value.toLowerCase(); // 获取搜索框输入的文本并转换成小写
var rows = dataTable.getElementsByTagName("tr"); // 获取表格中的所有行
// 遍历表格中的每一行
for (var i = 0; i < rows.length; i++) {
var name = rows[i].getElementsByTagName("td")[0].textContent.toLowerCase(); // 获取当前行的第一列文本并转换成小写
var age = rows[i].getElementsByTagName("td")[1].textContent.toLowerCase(); // 获取当前行的第二列文本并转换成小写
var gender = rows[i].getElementsByTagName("td")[2].textContent.toLowerCase(); // 获取当前行的第三列文本并转换成小写
// 如果当前行的任意一列中包含搜索文本,则显示当前行,否则隐藏当前行
if (name.includes(searchText) || age.includes(searchText) || gender.includes(searchText)) {
rows[i].style.display = "";
} else {
rows[i].style.display = "none";
}
}
});
</script>
</body>
</html>
```
该代码会创建一个包含搜索框和表格的 HTML 页面,并使用 JavaScript 实现表格搜索功能。当用户输入搜索文本时,JavaScript 会遍历表格中的每一行,检查每一行的每一列是否包含搜索文本,并根据搜索结果显示或隐藏表格行。
阅读全文