html表格点击表头字段排序
时间: 2023-06-01 14:02:49 浏览: 117
table点击表头排序
3星 · 编辑精心推荐
要在HTML表格中实现点击表头字段排序,可以使用JavaScript编写一个函数来执行排序操作。以下是一个简单的示例:
HTML代码:
```html
<table id="myTable">
<thead>
<tr>
<th onclick="sortTable(0)">Name</th>
<th onclick="sortTable(1)">Age</th>
<th onclick="sortTable(2)">Country</th>
</tr>
</thead>
<tbody>
<tr>
<td>John</td>
<td>21</td>
<td>USA</td>
</tr>
<tr>
<td>Mike</td>
<td>32</td>
<td>Canada</td>
</tr>
<tr>
<td>Sarah</td>
<td>25</td>
<td>Australia</td>
</tr>
</tbody>
</table>
```
JavaScript代码:
```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;
}
}
}
}
```
在这个示例中,我们使用一个带有三个表头字段的表格。每个表头字段都添加了一个`onclick`属性,该属性指定了一个JavaScript函数`sortTable()`,该函数将被调用以执行排序操作。
`sortTable()`函数接受一个参数`n`,该参数表示要按照哪个表头字段进行排序。该函数使用`getElementsByTagName()`方法获取表格中的所有行,并使用嵌套的循环遍历这些行。在每次循环中,函数比较两个行的单元格,如果它们需要交换,则使用`insertBefore()`方法交换它们的位置。函数还使用一个变量`dir`来跟踪排序顺序(升序或降序),并在每次循环中修改该变量以确保正确的排序顺序。
在这个示例中,我们将函数绑定到了表头的`onclick`事件上。这意味着当用户点击表头字段时,函数将被调用以执行排序操作。您可以根据需要修改此代码以满足您的特定需求。
阅读全文