juqery对table的排序


不太想用插件实现对table的排序,索性自己写了一个,废话不说,代码贴出。

<!DOCTYPE html>
<html>
<head>
    <title>123321</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>

<script src="jquery-1.9.1.min.js"></script>
<script src="sort.js"></script>

<table id="my_table" border="1">
    <thead>
    <tr class="first_title">
        <th class="w16 freeze"><input type="checkbox"></th>
        <th class="freeze">Name</th>
        <th class="freeze">Major</th>
        <th class="sort_up">Sex</th>
        <th class="freeze">English</th>
        <th class="">Japanese</th>
        <th class="freeze">Calculus</th>
        <th class="freeze">Geometry</th>
    </tr>
    </thead>

    <tbody>


    
    <tr name='aaaaaaaaa' class="even">
        <td class="w16"><input type="checkbox"></td>
        <td>Student04</td>
        <td>Languages</td>
        <td>female</td>
        <td>68</td>
        <td>2015-12-12 18:12</td>
        <td>95</td>
        <td>12</td>
    </tr>

    <tr name='aaaaaaaaa' class="even">
        <td class="w16"><input type="checkbox"></td>
        <td>Student05</td>
        <td>Languages</td>
        <td>female</td>
        <td>68</td>
        <td>2013-12-15 12:12</td>
        <td>95</td>
        <td>8</td>
    </tr>

    <tr name='aaaaaaaaa' class="even">
        <td class="w16"><input type="checkbox"></td>
        <td>Student06</td>
        <td>Languages</td>
        <td>female</td>
        <td>68</td>
        <td>2012-11-12 12:12</td>
        <td>95</td>
        <td>1</td>
    </tr>

    <tr name='aaaaaaaaa' class="even">
        <td class="w16"><input type="checkbox"></td>
        <td>Student01</td>
        <td>Languages</td>
        <td>female</td>
        <td>test</td>
        <td>1999-12-12 22:12</td>
        <td>95</td>
        <td>7</td>
    </tr>

    <tr name='aaaaaaaaa' class="even">
        <td class="w16"><input type="checkbox"></td>
        <td>Student02</td>
        <td>Languages</td>
        <td>female</td>
        <td>68</td>
        <td>2000-12-12 02:12</td>
        <td>95</td>
        <td>123</td>
    </tr>

   <tr name='aaaaaaaaa' class="even">
        <td class="w16"><input type="checkbox"></td>
        <td>Student03</td>
        <td>Languages</td>
        <td>female</td>
        <td>68</td>
        <td>2016-12-12 12:12</td>
        <td>95</td>
        <td>5</td>
    </tr>

    <tr name='aaaaaaaaa' class="even">
        <td class="w16"><input type="checkbox"></td>
        <td>Student04</td>
        <td>Languages</td>
        <td>female</td>
        <td>68</td>
        <td>2015-12-12 18:12</td>
        <td>95</td>
        <td>12</td>
    </tr>

    <tr name='aaaaaaaaa' class="even">
        <td class="w16"><input type="checkbox"></td>
        <td>Student05</td>
        <td>Languages</td>
        <td>female</td>
        <td>68</td>
        <td>2013-12-15 12:12</td>
        <td>95</td>
        <td>8</td>
    </tr>

    <tr name='aaaaaaaaa' class="even">
        <td class="w16"><input type="checkbox"></td>
        <td>Student06</td>
        <td>Languages</td>
        <td>female</td>
        <td>68</td>
        <td>2012-11-12 12:12</td>
        <td>95</td>
        <td>1</td>
    </tr>

    </tbody>
</table>

<input type="button" value="sort" οnclick="table_sort('my_table', 5)">
</body>
</html>

/*
* file:     sort.js
* author:   lxstar
* date:     2013-04-12
* function: sort by time in table
* */

table_order = 1; //排序Flag

function table_sort(table_id, col_num){
    //参数 table_id:表id
    //     col_num:要排序的列数

    var row_num = 0;    //行数
    var old_tr = new Array();
    var order_col = new Array();
    var ordered_num = new Array();

    if($("#" + table_id + " tbody tr").length == 0){
        //行数为零 退出
        return ;
    }

    $("#" + table_id + " tbody tr").each(function(){
        //保存原始tr
        old_tr.push($(this).html());
    });

    row_num = old_tr.length;

    for(i = 0; i < row_num; i++){
        //加尾标
        order_data = $("#" + table_id + " tbody tr:eq(" + i + ") td:eq(" + col_num + ")").html();
        order_col.push(order_data + i);
    }

    order_length = order_col[0].length - 1;
    if(table_order){
        order_col.sort();
        table_order = 0;
    }
    else{
        order_col.reverse();
        table_order = 1;
    }

    for(i = 0; i < row_num; i++){
        //获取顺序
        ordered_num[i] = order_col[i].substring(order_length, order_col[i].length);
    }

    //清空tbody
    $("#" + table_id + " tbody").html("");

    for(i = 0; i < row_num; i++){
        //插入原来数据
        $("#" + table_id + " tbody").append("<tr>" + old_tr[ordered_num[i]] + "</tr>");
    }
}

自己看把~~~


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值