您的位置:首页 > Web前端 > JavaScript

js-点击表格自动排序

2016-08-31 23:26 453 查看
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>js排序特效</title>

    <script src="http://suiyidian.cn/texiao/tab/jquery-1.5.2.min.js" type="text/javascript"></script>

    <style>

    .main {

        height: auto;

        overflow: hidden;

        margin: 0pxauto;

    }

    

    .main td {

        text-align: center;

        height: 28px;

        width: 100px;

        line-height: 28px;

        font-size: 14px;

        color: #555;

    }

    

    .main .title td {

        cursor: pointer;

        color: #333

    }

    

    .none {

        display: none

    }

    </style>

    <script>

    $(function() {

        var pk = 1;

        $(".title td").click(function() {

            //把要排序的内容添加到数组里

            var tIndex = parseInt($(this).index());

            var valueArray = new Array();

            var p = 0;

            for (var i = 1; i < $("table tr").length; i++) {

                if (tIndex != 0) {

                    valueArray[p] = parseInt($("table tr:eq(" + i + ") td").eq(tIndex).html());

                } else {

                    valueArray[p] = $("table tr:eq(" + i + ") td").eq(tIndex).html();

                }

                p++;

            }

            //数据排序

            if (pk == 1) {

                valueArray.sort(function(a, b) {

                    return a < b ? -1 : 1

                })

                pk = 2

            } else {

                valueArray.sort(function(a, b) {

                    return a > b ? -1 : 1

                })

                pk = 1

            }

            //匹配内容加入到一个隐藏的排序div里+-

            for (var i = 0; i < valueArray.length; i++) {

                for (var d = 1; d < $("table tr").length; d++) {

                    var valueText = tIndex != 0 ? parseInt($("table tr:eq(" + d + ") td").eq(tIndex).html()) : $("table tr:eq(" + d + ") td").eq(tIndex).html();

                    if (valueArray[i] == valueText) {

                        $("table tr").eq(d).clone().appendTo(".none")

                    }

                }

            }

            //重新整理html 排序,添加到视图里

            var titleClone = $("table tr").eq(0).clone(true);

            $("table").html("").append(titleClone);

            $("table").append($(".none").html())

            $(".none").html("");

        })

    })

    </script>

</head>

<body>

    <table class="main" width="500" border="0" cellspacing="1" bgcolor="#666666">

        <tr class="title">

            <td bgcolor="#CCCCCC">姓名</td>

            <td bgcolor="#CCCCCC">年龄</td>

            <td bgcolor="#CCCCCC">出生年</td>

            <td bgcolor="#CCCCCC">分数</td>

        </tr>

        <tr>

            <td bgcolor="#FFFFFF">李百(L)</td>

            <td bgcolor="#FFFFFF">15</td>

            <td bgcolor="#FFFFFF">1988</td>

            <td bgcolor="#FFFFFF">99</td>

        </tr>

        <tr>

            <td bgcolor="#FFFFFF">王易(W)</td>

            <td bgcolor="#FFFFFF">25</td>

            <td bgcolor="#FFFFFF">2000</td>

            <td bgcolor="#FFFFFF">150</td>

        </tr>

        <tr>

            <td bgcolor="#FFFFFF">林明(L)</td>

            <td bgcolor="#FFFFFF">18</td>

            <td bgcolor="#FFFFFF">1745</td>

            <td bgcolor="#FFFFFF">120</td>

        </tr>

        <tr>

            <td bgcolor="#FFFFFF">李姐(L)</td>

            <td bgcolor="#FFFFFF">20</td>

            <td bgcolor="#FFFFFF">1996</td>

            <td bgcolor="#FFFFFF">130</td>

        </tr>

    </table>

    <div class="none"></div>

</body>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js html 表格排序