JS实现表格排序,<thead>的不同字段

这篇博客介绍了如何使用JavaScript实现HTML表格的排序功能。通过监听表格头部点击事件,动态调整排序标志并调用自定义`sort`函数进行排序。`sort`函数根据`data-type`属性区分数字、字符串和日期三种类型的字段,进行相应类型的比较和排序。示例代码中展示了针对数字、字符串和日期的排序逻辑,以及如何将排序后的数据重新添加回表格。
摘要由CSDN通过智能技术生成
<table id="tableSort">
    <thead>
        <tr>
            <th data-type="num">工号</th>
            <th data-type="string">姓名</th>
            <th data-type="string">性别</th>
            <th data-type="date">时间</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>06</td>
            <td>sssss</td>
            <td></td>
            <td>2008-10-10
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在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`事件上。这意味着当用户点击表头字段时,函数将被调用以执行排序操作。您可以根据需要修改此代码以满足您的特定需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值