表格排序

 
  1. <html>  
  2.     <head>  
  3.     <title>Table Sort Example</title>  
  4.         <script type="text/javascript">  
  5.             function convert(sValue, sDataType) {  
  6.                 switch(sDataType) {  
  7.                     case "int":  
  8.                         return parseInt(sValue);  
  9.                     case "float":  
  10.                         return parseFloat(sValue);  
  11.                     case "date":  
  12.                         return new Date(Date.parse(sValue));  
  13.                     default:  
  14.                         return sValue.toString();  
  15.                   
  16.                 }  
  17.             }  
  18.           
  19.             function generateCompareTRs(iCol, sDataType) {  
  20.                 return  function compareTRs(oTR1, oTR2) {  
  21.                             var vValue1 = convert(oTR1.cells[iCol].firstChild.nodeValue, sDataType);  
  22.                             var vValue2 = convert(oTR2.cells[iCol].firstChild.nodeValue, sDataType);  
  23.                             if (vValue1 < vValue2) {  
  24.                                 return -1;  
  25.                             } else if (vValue1 > vValue2) {  
  26.                                 return 1;  
  27.                             } else {  
  28.                                 return 0;  
  29.                             }  
  30.                         };  
  31.             }  
  32.              
  33.             function sortTable(sTableID, iCol, sDataType) {  
  34.                 var oTable = document.getElementById(sTableID);  
  35.                 var oTBody = oTable.tBodies[0];  
  36.                 var colDataRows = oTBody.rows;  
  37.                 var aTRs = new Array;  
  38.                 for (var i=0; i < colDataRows.length; i++) {  
  39.                     aTRs[i] = colDataRows[i];  
  40.                 }  
  41.   
  42.                 if (oTable.sortCol == iCol) {  
  43.                     aTRs.reverse();  
  44.                 } else {  
  45.                     aTRs.sort(generateCompareTRs(iCol, sDataType));  
  46.                 }  
  47.   
  48.                 var oFragment = document.createDocumentFragment();  
  49.                 for (var i=0; i < aTRs.length; i++) {  
  50.                     oFragment.appendChild(aTRs[i]);  
  51.                 }  
  52.                 oTBody.appendChild(oFragment);  
  53.                 oTable.sortCol = iCol;  
  54.             }  
  55.         </script>  
  56.     </head>  
  57.     <body>  
  58.         <p>Click on the table header to sort in ascending order.</p>  
  59.         <table border="1" id="tblSort">  
  60.             <thead>  
  61.                 <tr>  
  62.                     <th onclick="sortTable('tblSort', 0)"   
  63.                         style="cursor:pointer">Last Name</th>  
  64.                     <th onclick="sortTable('tblSort', 1)"   
  65.                         style="cursor:pointer">First Name</th>  
  66.                     <th onclick="sortTable('tblSort', 2, 'date')"   
  67.                         style="cursor:pointer">Birthday</th>  
  68.                     <th onclick="sortTable('tblSort', 3, 'int')"   
  69.                         style="cursor:pointer">Siblings</th>  
  70.                 </tr>  
  71.             </thead>  
  72.             <tbody>  
  73.                 <tr>  
  74.                     <td>Smith</td>  
  75.                     <td>John</td>  
  76.                     <td>7/12/1978</td>  
  77.                     <td>2</td>  
  78.                 </tr>  
  79.                 <tr>  
  80.                     <td>Johnson</td>  
  81.                     <td>Betty</td>  
  82.                     <td>10/15/1977</td>  
  83.                     <td>4</td>  
  84.                 </tr>  
  85.                 <tr>  
  86.                     <td>Henderson</td>  
  87.                     <td>Nathan</td>  
  88.                     <td>2/25/1949</td>  
  89.                     <td>1</td>  
  90.                 </tr>  
  91.                 <tr>  
  92.                     <td>Williams</td>  
  93.                     <td>James</td>  
  94.                     <td>7/8/1980</td>  
  95.                     <td>4</td>  
  96.                 </tr>  
  97.                 <tr>  
  98.                     <td>Gilliam</td>  
  99.                     <td>Michael</td>  
  100.                     <td>7/22/1949</td>  
  101.                     <td>1</td>  
  102.                 </tr>  
  103.                 <tr>  
  104.                     <td>Walker</td>  
  105.                     <td>Matthew</td>  
  106.                     <td>1/14/2000</td>  
  107.                     <td>3</td>  
  108.                 </tr>  
  109.             </tbody>  
  110.         </table>          
  111.     </body>  
  112. </html>  
  113.  

  • 注意:  
  • 1.有时td里面东西封装了,js会报错,此时需要在td里面加一些东西,比如说&nbsp;  
  • 2.汉字不能进行排序,只能颠倒顺序.  
  • 3.日期排序需要按照上面的格式显示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值