js表头排序实现方法

所属分类: 网络编程 / JavaScript 阅读数: 1853
收藏 0 赞 0 分享

本文实例讲述了js表头排序实现方法。分享给大家供大家参考。

具体实现方法如下:

复制代码 代码如下:

<script type="text/javascript">
    //是否递减排序
    var isDescending = true;
    /*****************************************
    * 要排序的行必须放到<tbody></tbody>标签中
    * tableId:排序表格ID
    * colNo:排序的列号,即第几列,从0开始
    * startRowNo:排序的开始行号,从0开始
    * sortLength:要排序的行数,
    * type:排序列的类型
    */
    function sort(tableId, colNo ,startRowNo, sortLength, type)
    {
        //如果要排序的行数是1或是0,则不对其进行排序操作
        if(sortLength<=1){
            return;
        }
        var currTable = document.getElementById(tableId);
        var theHeader = currTable.outerHTML.substring(0, currTable.outerHTML.indexOf('<TBODY>')+7)
        var theFooter = currTable.outerHTML.substring(currTable.outerHTML.indexOf('</TBODY>')-8);
        //这里的行数是去掉表头表头行和表位行的行数
        var theRows = new Array(sortLength);
        //对表中的数据进行循环
        for(i=startRowNo; i<sortLength+startRowNo; i++)
        {
            theRows[i-startRowNo] = new Array(currTable.rows[i].cells[colNo].innerText.toLowerCase(), currTable.rows[i].outerHTML);
        }
        if(type.toUpperCase()=='NUMBER')
        {
            theRows.sort(compareNumber);
        }
        else if(type.toUpperCase()=='DATE')
            theRows.sort(compareDate);
        else if(type.toUpperCase()=='STRING')
            theRows.sort(compareString);
        var tableInfo=''
        for(j=0; j<theRows.length; j++)
        {
            tableInfo+=theRows[j][1];
        }
        isDescending = !isDescending;
        currTable.outerHTML= theHeader + tableInfo +theFooter;
        return ;
    }
    //对数字进行比较
    function compareNumber(x, y)
    {
        //对货币格式的数据进行转化
        a = x[0].excludeChars(",").trim();
        b = y[0].excludeChars(",").trim();
 
        if(a==""){a=0;}
        if(b==""){b=0;}
            if(isDescending)
            {
                return parseFloat(b) - parseFloat(a);
            }
            else
            {
                return parseFloat(a) - parseFloat(b);
            }
    }
    //对字符串进行比较
    function compareString(x, y)
    {
            if(isDescending)
            {
                if(x[0]>y[0]) return -1;
                else if(x[0]<y[0]) return 1;
                else return 0;
            }
            else
            {
                if(x[0]<y[0]) return -1;
                else if(x[0]>y[0]) return 1;
                else return 0;
            }
    }
    //对时间进行比较
    function compareDate(x,y){
        var arr=x[0].split("-");
        var starttime=new Date(arr[0],arr[1],arr[2]);
        var starttimes=starttime.getTime();
        var arrs=y[0].split("-");
        var lktime=new Date(arrs[0],arrs[1],arrs[2]);
        var lktimes=lktime.getTime();
        
        if(isDescending)
        {
            return lktimes - starttimes;
        }
        else
        {
            return starttimes - lktimes;
        }
    }
    //去除字符串中所有指定的字符串
    String.prototype.excludeChars = function(chars){
         var matching = new RegExp(chars , "g") ;
         return this.replace(matching , '') ;
    }
</script>

希望本文所述对大家的javascript程序设计有所帮助。

更多精彩内容其他人还在看

JS组件Bootstrap Table使用方法详解

这篇文章主要为大家详细介绍了JS组件Bootstrap Table使用方法,具有一定的实用性,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

javascript禁止超链接跳转的方法

这篇文章主要介绍了javascript禁止超链接跳转的方法,结合实例分析了JavaScript事件机制与鼠标事件的响应操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

JavaScript实现的MD5算法完整实例

这篇文章主要介绍了JavaScript实现的MD5算法,以完整实例形式分析了基于JavaScript实现MD5算法的具体步骤与相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

Hammer.js+轮播原理实现简洁的滑屏功能

这篇文章主要介绍了Hammer.js+轮播原理实现简洁的滑屏功能的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

基于JQuery实现图片轮播效果(焦点图)

这篇文章主要为大家详细介绍了基于JQuery实现图片轮播效果,利用Jquery制作焦点图左右轮播特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

javascript实现瀑布流加载图片原理

这篇文章主要为大家介绍了javascript实现瀑布流加载图片效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

JavaScript实现的SHA-1加密算法完整实例

这篇文章主要介绍了JavaScript实现的SHA-1加密算法,以完整实例形式分析了SHA-1加密算法的具体实现技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

Javascript实现的SHA-256加密算法完整实例

这篇文章主要介绍了Javascript实现的SHA-256加密算法,以完整实例形式分析了JavaScript实现SHA-256加密的具体步骤与相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

原生js实现图片层叠轮播切换效果

这篇文章主要为大家详细介绍了原生js实现图片层叠轮播切换效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

javascript自动切换焦点控制效果完整实例

这篇文章主要介绍了javascript自动切换焦点控制效果的方法,结合完整实例形式分析了JavaScript响应键盘按键控制表单输入框的焦点切换功能,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多