国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

js表頭排序?qū)崿F(xiàn)方法

2024-05-06 16:14:33
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了js表頭排序?qū)崿F(xiàn)方法,涉及數(shù)字、字母、字符串比較及排序等操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
 

本文實(shí)例講述了js表頭排序?qū)崿F(xiàn)方法。分享給大家供大家參考。

具體實(shí)現(xiàn)方法如下:

 

復(fù)制代碼代碼如下:

<script type="text/javascript">
    //是否遞減排序
    var isDescending = true;
    /*****************************************
    * 要排序的行必須放到<tbody></tbody>標(biāo)簽中
    * tableId:排序表格ID
    * colNo:排序的列號(hào),即第幾列,從0開始
    * startRowNo:排序的開始行號(hào),從0開始
    * sortLength:要排序的行數(shù),
    * type:排序列的類型
    */
    function sort(tableId, colNo ,startRowNo, sortLength, type)
    {
        //如果要排序的行數(shù)是1或是0,則不對(duì)其進(jìn)行排序操作
        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);
        //這里的行數(shù)是去掉表頭表頭行和表位行的行數(shù)
        var theRows = new Array(sortLength);
        //對(duì)表中的數(shù)據(jù)進(jìn)行循環(huán)
        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 ;
    }
    //對(duì)數(shù)字進(jìn)行比較
    function compareNumber(x, y)
    {
        //對(duì)貨幣格式的數(shù)據(jù)進(jìn)行轉(zhuǎn)化
        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);
            }
    }
    //對(duì)字符串進(jìn)行比較
    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;
            }
    }
    //對(duì)時(shí)間進(jìn)行比較
    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>

 

希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 平乐县| 唐河县| 平果县| 东兴市| 阿克陶县| 花垣县| 静乐县| 渭源县| 永修县| 乐山市| 丘北县| 和田县| 白玉县| 鹤庆县| 汨罗市| 闸北区| 乌鲁木齐县| 手游| 东丽区| 宿迁市| 天台县| 精河县| 巴中市| 闻喜县| 德兴市| 正定县| 南投县| 巴里| 红河县| 宁河县| 湟源县| 温泉县| 稻城县| 淮阳县| 武义县| 忻城县| 黑水县| 大丰市| 广德县| 广元市| 大邑县|