zoukankan      html  css  js  c++  java
  • Jquery原创排序table

    思路:利用交换行配合最小排序法来实现

    1.调用方法,如sortColumn(1,1)

    2.getColumnValue(1,2) 得到第一行第二列的值

    3.exChangeRow(1,4) 交换第一和第四行(这个方法i必须小于j)

    源码如下(适当修改即可使用):

    <script language="javascript" type="text/javascript">
             var sortDirection = 'desc';
             function sortColumn(column,type) {
                 var rows = $("#MyGrid tbody tr").length-2+1;
                 for (var i = 2; i <= rows; i++) {
                     for (var j = 2; j <= rows; j++) {
                         if (sortDirection == 'desc') {
                             if (compareValueNew(getColumnValue(i, column),getColumnValue(j, column),type,1)) {
                                 if (i < j) {
                                     exChangeRow(i, j);
                                 }
                                 else {
                                     exChangeRow(j, i);
                                 }
                             }
                         }
                         if (sortDirection == 'asc') {
                             if (compareValueNew(getColumnValue(i, column),getColumnValue(j, column),type,2)){
                                 if (i < j) {
                                     exChangeRow(i, j);
                                 }
                                 else {
                                     exChangeRow(j, i);
                                 }
                             }
                         }
                        
                     }
                 }

                 if (sortDirection == 'desc') {
                     sortDirection = 'asc';
                 }
                 else {
                     sortDirection = 'desc';
                 }
             }

             function getColumnValue(row,column)
             {
                var returnValue = $("#MyGrid tbody tr:eq("+row+") td:eq("+column+")").text();
                return returnValue;
             }

            function exChangeRow(i, j) {
                 $("#MyGrid tbody tr:eq(" + j + ")").insertAfter($("#MyGrid tbody tr:eq(" + i + ")"));
                 $("#MyGrid tbody tr:eq(" + i + ")").insertAfter($("#MyGrid tbody tr:eq(" + j + ")"));

             }

             function compareValueNew(value1, value2, type,direction) {
                 //1 text
                 if (1 == type) {
                     if (1 == direction) {
                         return value1 < value2;
                     }
                     else {
                         return value1 > value2;
                     }
                 }
                 //2 float
                 if (2 == type) {
                     if (1 == direction) {
                         return parseFloat(value1) < parseFloat(value2);
                     }
                     else {
                         return parseFloat(value1) > parseFloat(value2);
                     }
                 }
             }

        </script>

  • 相关阅读:
    (转)视频编码标准汇总及比较
    (转)live555从RTSP服务器读取数据到使用接收到的数据流程分析
    (转)MPEG4码流简单分析
    H264裸流分析中,能获取哪些信息?
    (转)基于live555的流媒体代理转发服务器
    测试x264编码器的低延时编码和非延时编码
    ELK 日志分析系统
    Dubbox:来自当当网的SOA服务框架
    CHMOD命令怎么用?
    linux显示文件列表命令ls,使用ls --help列出所有命令参数
  • 原文地址:https://www.cnblogs.com/kenny999/p/2936440.html
Copyright © 2011-2022 走看看