对于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