• JavaScript對Table進行排序(jQuery)


    <html>
     <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <title>StripingTable</title>
     <script src="jquery-1.2.1.js" type="text/javascript"></script>
     <script src="jquery.tablesorter.js" type="text/javascript"></script> 
     <script type="text/javascript">
     $(function(){
      formatTable("tb");
     });
     
     //var sortCol;
     var storeTable = {
      sortCol:null,
      storeTableByColIndex:function(sTableId,colIndex,sType){
       var oTable = $("#" + sTableId);
       var trList = oTable.find("tbody>tr");
       var arrTr = trList.get();

       if(storeTable.sortCol==colIndex){
        arrTr.reverse();
       }
       else {
        arrTr.sort(storeTable.generateCompareTrs(colIndex,sType));
       }
       oTable.find("tbody").html($(arrTr));

       storeTable.sortCol = colIndex;
       formatTable(sTableId);//格式化Table
      },
      convert:function(sValue,sDataType){
       switch(sDataType)
       {
        case "int":
         return parseInt(sValue,10);
         break;
        case "float":
         return parseFloat(sValue);
         break;
        case "date":
         return new Date(Date.parse(sValue));
         break;
        default:
         return sValue.toString();
       }
      },
      generateCompareTrs:function(iCol,sDataType){
       return  function compareTrs(oTr1,oTr2)
       {
        var vValue1 = storeTable.convert(oTr1.children[iCol].innerText,sDataType);
        var vValue2 = storeTable.convert(oTr2.children[iCol].innerText,sDataType);
        if(vValue1 < vValue2)
        {
         return -1;
        }
        else if(vValue1> vValue2)
        {
         return 1;
        }
        else
        {
         return 0;
        }
       }
      }
     }

     function formatTable(sTableId){
      $("#"+sTableId).find("tbody>tr").removeClass("alt");
      $(".stripe tr").mouseover(function(){
       $(this).addClass("over");}).mouseout(function(){
       $(this).removeClass("over");});
      $(".stripe tr:even").addClass("alt");
     }
     </script>
     <style>
     th {
      cursor:hand;
      background:#0066FF;
      color:#FFFFFF;
      line-height:20px;
      height:30px;
     }
     
     td {
      padding:6px 11px;
      border-bottom:1px solid #95bce2;
      vertical-align:top;
      text-align:center;
     }
     
     td * {
       padding:6px 11px;
     }
     
     tr.alt td {
      background:#ecf6fc;  /*这行将给所有的tr加上背景色*/
     }
     
     tr.over td {
      background:#bcd4ec;  /*这个将是鼠标高亮行的背景色*/
     }
     </style>
     </head>
     
     <body>
      <div id="msg" >drag me!</div>
      <table id="tb" class="stripe" width="50%" border="0" cellspacing="0" cellpadding="0">
      <!--用class="stripe"来标识需要使用该效果的表格-->
      <thead>
        <tr>
       <th onclick="storeTable.storeTableByColIndex('tb',0)">姓名</th>
       <th onclick="storeTable.storeTableByColIndex('tb',1,'int')">年龄</th>
       <th onclick="storeTable.storeTableByColIndex('tb',2,'int')">QQ</th>
       <th onclick="storeTable.storeTableByColIndex('tb',3,'date')">Email</th>
        </tr>
      </thead>
      <tbody>
        <tr>
       <td>邓国梁1</td>
       <td>23</td>
       <td>31540201</td>
       <td>2007/1/1</td>
        </tr>
        <tr>
       <td>邓国梁1</td>
       <td>2</td>
       <td>31540201</td>
       <td>2007/1/2</td>
        </tr>
        <tr>
       <td>邓国梁3</td>
       <td>20</td>
       <td>31540203</td>
       <td>2007/4/1</td>
        </tr>
        <tr>
       <td>邓国梁4</td>
       <td>190</td>
       <td>31540204</td>
       <td>2007/3/1</td>
        </tr>
        <tr>
       <td>邓国梁4</td>
       <td>100</td>
       <td>31540204</td>
       <td>2007/5/1</td>
        </tr>
      </tbody>
      </table>
     </body>
    </html>

  • 相关阅读:
    最大子矩阵和(二维矩阵转一维DP)
    最长公共子序列+编辑距离
    过河(DP)
    墙壁涂色(DP)
    数组分组(DP)
    一维消消乐(DP)
    逃生(地图上的dp)
    kuangbin专题专题十一 网络流 POJ 3436 ACM Computer Factory
    网络流算法模板
    Codeforces Round #614 (Div. 2) C
  • 原文地址:https://www.cnblogs.com/chy8219/p/1018468.html
Copyright © 2020-2023  润新知