对于Web开发人员来说,实现表格排序和筛选功能是一个常见的需求。在本文中,我们将学习如何在HTML中实现这两个功能,并提供相应的代码示例。
实现表格排序的最基本方法是使用JavaScript。我们可以通过编写一个函数来实现排序功能,并将其绑定到表头的单元格上。以下是一个示例函数:
function sortTable(n) {
var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0;
table = document.getElementById("myTable");
switching = true;
dir = "asc";
while (switching) {
switching = false;
rows = table.getElementsByTagName("tr");
for (i = 1; i < (rows.length - 1); i++) {
shouldSwitch = false;
x = rows[i].getElementsByTagName("td")[n];
y = rows[i + 1].getElementsByTagName("td")[n];
if (dir == "asc") {
if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) {
shouldSwitch= true;
break;
}
} else if (dir == "desc") {
if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) {
shouldSwitch= true;
break;
}
}
}
if (shouldSwitch) {
rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
switching = true;
switchcount ++;
} else {
if (switchcount == 0 && dir == "asc") {
dir = "desc";
switching = true;
}
}
}
}该函数使用了冒泡排序算法,可以对表格按照所选列进行排序。我们可以将该函数与HTML中的表头单元格绑定,以实现排序功能。以下是一个示例:
<table id="myTable">
<thead>
<tr>
<th onclick="sortTable(0)">Name</th>
<th onclick="sortTable(1)">Country</th>
<th onclick="sortTable(2)">Age</th>
</tr>
</thead>
<tbody>
<tr>
<td>John</td>
<td>Norway</td>
<td>25</td>
</tr>
<tr>
<td>Mickey</td>
<td>USA</td>
<td>30</td>
</tr>
<tr>
<td>Bob</td>
<td>France</td>
<td>20</td>
</tr>
</tbody>
</table>在上述示例中,我们为表头单元格添加了一个onclick事件,以调用sortTable函数并指定所选列的索引。
实现表格筛选的方法更加复杂,但我们仍然可以使用JavaScript来实现。以下是一个示例函数:
function filterTable() {
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";
}
}
}
}该函数使用了循环遍历所有行和单元格的方法,以查找与输入值匹配的行。我们可以将该函数与HTML中的输入框绑定,以实现筛选功能。以下是一个示例:
<input type="text" id="myInput" onkeyup="filterTable()" placeholder="Search for names..">
<table id="myTable">
<thead>
<tr>
<th>Name</th>
<th>Country</th>
<th>Age</th>
</tr>
</thead>
<tbody>
<tr>
<td>John</td>
<td>Norway</td>
<td>25</td>
</tr>
<tr>
<td>Mickey</td>
<td>USA</td>
<td>30</td>
</tr>
<tr>
<td>Bob</td>
<td>France</td>
<td>20</td>
</tr>
</tbody>
</table>在上述示例中,我们为输入框添加了一个onkeyup事件,以调用filterTable函数并在表格中查找与输入值匹配的行。
本文为翻滚的胖子原创文章,转载无需和我联系,但请注明来自猿教程iskeys.com
