js实现表格排序

用js实现表格排序。
这里写图片描述
第一点击以降序排列,第二次点击以升序排列
html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <table border="1">
        <tr>
            <th>学号</th>
            <th>名字</th>
            <th id="sort">成绩</th>
        </tr>
        <tr>
            <td>1002</td>
            <td>小铭</td>
            <td>34</td>
        </tr>
        <tr>
            <td>1003</td>
            <td>小红</td>
            <td>64</td>
        </tr>
        <tr>
            <td>1004</td>
            <td>小黄</td>
            <td>24</td>
        </tr>
        <tr>
            <td>1005</td>
            <td>小米</td>
            <td>53</td>
        </tr>
        <tr>
            <td>1006</td>
            <td>小蒋</td>
            <td>78</td>
        </tr>
        <tr>
            <td>1007</td>
            <td>小捷</td>
            <td>97</td>
        </tr>
        <tr>
            <td>1004</td>
            <td>小邓</td>
            <td>65</td>
        </tr>
    </table>
</body>
</html> 

js代码

<script>
    var sort = document.getElementById('sort');
    var up = true
    sort.onclick = function(){
        var table = document.getElementsByTagName('table')[0];
        var tr = table.getElementsByTagName('tr');
        var array = [];
        for (var i = 1;i < tr.length;i++) {
            array.push(tr[i]);
        }
        if (up) {
            SortUp (array);
            up = false;
        } else {
            SortDown (array);
            up = true;
        }

        for (var i = 0; i < array.length; i++){
            table.appendChild(array[i]);
        }
    }
    function SortUp(array){
        for (var i = 0;i < array.length;i++) {
            for (var j = i + 1;j < array.length;j++) {
                if (array[j] === undefined) {
                    continue;
                }
                if (array[i].getElementsByTagName('td')[2].innerText <= array[j].getElementsByTagName('td')[2].innerText) {
                    var temp = array[i];
                    array[i] = array[j];
                    array[j] = temp;
                }
            }
        }
    }
    function SortDown(array){
        for (var i = 0;i < array.length;i++) {
            for (var j = i + 1;j < array.length;j++) {
                if (array[j] === undefined) {
                    continue;
                }
                if (array[i].getElementsByTagName('td')[2].innerText >= array[j].getElementsByTagName('td')[2].innerText) {
                    var temp = array[i];
                    array[i] = array[j];
                    array[j] = temp;
                }
            }
        }
    }
</script>
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值