最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js表頭排序實現方法

 更新時間:2015年01月16日 11:13:58   投稿:shichen2014  
這篇文章主要介紹了js表頭排序實現方法,涉及數字、字母、字符串比較及排序等操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了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);
        //對表中的數據進行循環(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 ;
    }
    //對數字進行比較
    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程序設計有所幫助。

相關文章

  • javascript 隨機數 與高級應用 附vbscript(asp) 隨機數總結

    javascript 隨機數 與高級應用 附vbscript(asp) 隨機數總結

    有時忘了程序的隨機數函數或javascript和vbscript的隨機數混亂了,特總結下兩者的隨機數函數,以備以后使用方便。
    2007-10-10
  • 基于JavaScript如何制作遮罩層對話框

    基于JavaScript如何制作遮罩層對話框

    遮罩層聽起來貌似很復雜,其實說白了就是一個全界面的半透明的div,用戶不可以點擊下邊的元素,或者說是點擊沒有反應,接下來通過本文給大家介紹JavaScript如何制作遮罩層對話框,對js遮罩層相關知識感興趣的朋友一起學習吧
    2016-01-01
  • Js-$.extend擴展方法使方法參數更靈活

    Js-$.extend擴展方法使方法參數更靈活

    在JS里,我們的方法參數通常使用JQ的$.extend擴展方法來實現,感興趣的朋友可以了解下
    2013-01-01
  • JS運動特效之完美運動框架實例分析

    JS運動特效之完美運動框架實例分析

    這篇文章主要介紹了JS運動特效之完美運動框架,結合實例形式分析了javascript針對運動中的元素屬性檢測與判斷相關操作技巧,需要的朋友可以參考下
    2018-01-01
  • js原生輪播圖插件制作

    js原生輪播圖插件制作

    這篇文章主要為大家詳細介紹了js原生輪播圖插件制作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 利用hasOwnProperty給數組去重的面試題分享

    利用hasOwnProperty給數組去重的面試題分享

    obj.hasOwnProperty(attr) 判斷是否是原型中的屬性,false就是原型中的屬性,下面這篇文章主要給大家介紹了一道利用hasOwnProperty給數組去重的面試題,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-11-11
  • JavaScript惰性求值的一種實現方法示例

    JavaScript惰性求值的一種實現方法示例

    這篇文章主要給大家介紹了關于JavaScript惰性求值的一種實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01
  • JavaScript基于對象方法實現數組去重及排序操作示例

    JavaScript基于對象方法實現數組去重及排序操作示例

    這篇文章主要介紹了JavaScript基于對象方法實現數組去重及排序操作,涉及javascript基于對象方法的數組遍歷、比較、去重、排序等相關操作技巧,需要的朋友可以參考下
    2018-07-07
  • JS中split()用法(將字符串按指定符號分割成數組)

    JS中split()用法(將字符串按指定符號分割成數組)

    這篇文章主要介紹了JS中split()用法(將字符串按指定符號分割成數組)的相關資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • 微信小程序與webview?H5交互的方法(內嵌H5跳轉原生頁面)

    微信小程序與webview?H5交互的方法(內嵌H5跳轉原生頁面)

    小程序webView中嵌套H5頁面,難免會遇到小程序與h5頁面進行數據通信或交互的場景,下面這篇文章主要給大家介紹了關于微信小程序與webview?H5交互的相關資料,內嵌H5跳轉原生頁面,需要的朋友可以參考下
    2022-11-11

最新評論

恭城| 剑川县| 黄浦区| 四平市| 花莲市| 安乡县| 云林县| 巴林右旗| 云梦县| 大安市| 工布江达县| 平凉市| 滕州市| 铜鼓县| 海口市| 阿勒泰市| 汪清县| 南京市| 德令哈市| 都兰县| 郸城县| 双辽市| 昭通市| 陇南市| 荣成市| 临沭县| 江川县| 揭西县| 安平县| 泉州市| 定兴县| 华蓥市| 孟津县| 化德县| 台山市| 锡林浩特市| 财经| 华阴市| 天台县| 儋州市| 中宁县|