栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

js实现表格字段排序

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

js实现表格字段排序

1.比较函数生成器:
复制代码 代码如下:

function  generateCompareTRs(iCol, sDataType) {
     return   function  compareTRs(oTR1, oTR2) {
        vValue1 = convert(oTR1.cells[iCol].firstChild.nodevalue, sDataType);
        vValue2 = convert(oTR2.cells[iCol].firstChild.nodevalue, sDataType);
         if  (vValue1 < vValue2) {
             return  -1;
        }  else   if  (vValue1 > vValue2) {
             return  1;
        }  else  {
             return  0;
        }
    };
}

2.处理比较字符类型:
复制代码 代码如下:

function  convert(sValue, sDataType) {
     switch  (sDataType) {
     case   "int" :
         return  parseInt(sValue);
     case   "float" :
         return  parseFloat(sValue);
     case   "date" :
         return   new  Date(Date.parse(sValue));
     default :
         return  sValue.toString();
    }
}

3.主函数:
复制代码 代码如下:

function  sortTable(sTableID, iCol, sDataType) {
     var  oTable = document.getElementById(sTableID);
     var  oTBody = oTable.tBodies[0];
     var  colDataRows = oTBody.rows;
     var  aTRs =  new  Array;
     for  (  var  i = 0; i < colDataRows.length; i++) {
        aTRs[i] = colDataRows[i];
    }
     if  (oTable.sortCol == iCol) {
        aTRs.reverse();
    }  else  {
        aTRs.sort(generateCompareTRs(iCol, sDataType));
    }
     var  oFragment = document.createdocumentFragment();
     for  (  var  j = 0; j < aTRs.length; j++) {
        oFragment.appendChild(aTRs[j]);
    }
    oTBody.appendChild(oFragment);
    oTable.sortCol = iCol;
}

将以上问代码封装到一个js文件中,在html页面中引用。

测试test.html:
复制代码 代码如下:
< html   xmlns = "http://www.w3.org/1999/xhtml" >
< title > 表列排序
< script   type = "text/javascript"   src = "js/sortTable.js" >
< body >
< table   border = "1"   id = "tblSort" >
     < thead   style = "color: red; bgcolor: blank" >
         < tr >
             < th   onclick = " sortTable('tblSort',0);"   style = "cursor: pointer" > LastName
             < th   onclick = " sortTable('tblSort',1,'int');"   style = "cursor: pointer" > Number
             < th   onclick = " sortTable('tblSort',2,'date');"   style = "cursor: pointer" > Date
        
    
     < tbody >
         < tr >
             < td > A
             < td > 1
             < td > 5/9/2008
        
         < tr >
             < td > B
             < td > 3
             < td > 6/9/2008
        
         < tr >
             < td > D
             < td > 6
             < td > 5/4/2008
        
         < tr >
             < td > E
             < td > -5
             < td > 5/4/2007
        
         < tr >
             < td > H
             < td > 34
             < td > 5/8/2008
        
         < tr >
             < td > C
             < td > 12
             < td > 1/4/2018
        
    



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/108107.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号