首頁  >  文章  >  web前端  >  js實作表格欄位排序_javascript技巧

js實作表格欄位排序_javascript技巧

WBOY
WBOY原創
2016-05-16 16:59:351135瀏覽

1.比較函數產生器:

複製程式碼 程式碼如下:


程式碼如下:


/
/* *
 * 比較函數產生器
 *
 * @param iCol
 *             模式種
 * @return
 */
function  generateCompareTRs(iCol, sDataType) {
     return   function  compareTRs(oTR1, oTR2) { . Value, sDataType);
        vValue2 = convert(oTR2.cells[iCol].firstChild.nodeValue, sDataType);
         -1;
        }  else   if  (vValue1 > vValue2) {
             return  1;
        }  else  {
  }
    };
}

2.處理比較字元類型:
複製程式碼 程式碼如下:

/**
 * 處理排序的欄位類型
 *
 * @param sValue
 *                字段類型對於date只支援格式為mm/dd/yyyy或mmmm dd,yyyy(January 12,2004)
 * @return
 */
function , sDataType) {
     switch  (sDataType) {
     case   "int" :
      🎜>         return  parseFloat(sValue);
     case "date" :
         return   new  Date(Date.parse(sValue));
     🎜>}


3.主函數:




複製程式碼


程式碼如下:
/** * 將表格列以表列排序 *  * @param sTa​​bleID *           欄位列id eg: 0 1 2 3 ...
 * @param sDataType
 *            此欄位資料類型int,float,date 缺省情況下當     此欄位資料類型int,float,date 缺省情況下當     此欄位資料型態 */
function  sortTable(sTableID, iCol, sDataType) {
     var  oTable = document.getElementById(sTableID);
 ws = oTBody.rows ;
     var  aTRs =  new  Array;
     for  (  var  i = 0; i      if (oTable.sortCol == iCol) {
        aTRs.reverse();
    }  else  {
   🎜>     var  oFragment = document .createDocumentFragment();
     for  (  var  j = 0; j       appendChild(oFragment) ;
    oTable.sortCol = iCol;
}


將以上問代碼封裝到一個js檔案中,在html頁面中引用。

測試test.html:

複製程式碼 程式碼如下:


表格列排序 title >
script >


                  Number th >
            
            
         tr >
     thead >
    
  td > A td >
             1 td >
             5/9/2008 td >
             B td >
             3 td >
             6/9/2008 td >
             D td >
             6 td >
             5/4/2008 td >
             E td >
             -5 td >
             5/4/2007 td >
             H td >
             34 td >
             5/8/2008 td >
             C td >
             12 td >
             1/4/2018 td >
         tr >
         tr >
   >


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn