• HTML中实现Table表头点击升序/降序排序


      1 题目:如下图,请实现表格信息的排序功能,当点击表头的属性区域,将表格信息进行排序切换功能,即第一次点击为降序排序,再一次点击进行升序排序。
      2 姓名     力量   敏捷   智力
      3 德鲁伊王    17    24    13
      4 月之骑士    15    22    16
      5 众神之王    19    15    20
      6 流浪剑客    23    15    14
      7 基本思路:
      8 点击将各列数值存入数组第一次点击?(className=="as"?)升序排序(className="desc")按新排列的数组的顺序,将各列赋予新值降序排序(className="as")yesno
      9 完整代码:
     10 
     11  <!DOCTYPE HTML>
     12 <html>
     13     <head>
     14     <meta charset="utf-8">
     15     </head>
     16     <body>
     17         <table>
     18             <tr>
     19                 <th>姓名</th>
     20                 <th id="th1" onclick="SortTable(this)" class="as">力量</th>
     21                 <th id="th2" onclick="SortTable(this)" class="as">敏捷</th>
     22                 <th id="th3" onclick="SortTable(this)" class="as">智力</th>
     23             </tr>
     24             <tr>
     25                 <td name="td0">德鲁伊</td>
     26                 <td name="td1">17</td>
     27                 <td name="td2">24</td>
     28                 <td name="td3">13</td>              
     29             </tr>
     30             <tr>
     31                 <td name="td0">月之骑士</td>
     32                 <td name="td1">15</td>
     33                 <td name="td2">22</td>
     34                 <td name="td3">16</td>              
     35             </tr>
     36             <tr>
     37                 <td name="td0">众神之王</td>
     38                 <td name="td1">19</td>
     39                 <td name="td2">15</td>
     40                 <td name="td3">20</td>              
     41             </tr>
     42             <tr>
     43                 <td name="td0">流浪剑客</td>
     44                 <td name="td1">23</td>
     45                 <td name="td2">15</td>
     46                 <td name="td3">14</td>              
     47             </tr>
     48         </table>
     49     </body>
     50 </html>
     51 <script type="text/javascript"> 
     52     var tag=1;
     53     function sortNumberAS(a, b)
     54     {
     55         return a - b    
     56     }
     57     function sortNumberDesc(a, b)
     58     {
     59         return b-a
     60     }
     61 
     62     function SortTable(obj){
     63         var td0s=document.getElementsByName("td0");
     64         var td1s=document.getElementsByName("td1");
     65         var td2s=document.getElementsByName("td2");
     66         var td3s=document.getElementsByName("td3");
     67         var tdArray0=[];
     68         var tdArray1=[];
     69         var tdArray2=[];
     70         var tdArray3=[];
     71         for(var i=0;i<td0s.length;i++){
     72             tdArray0.push(td0s[i].innerHTML);
     73         }
     74         for(var i=0;i<td1s.length;i++){
     75             tdArray1.push(parseInt(td1s[i].innerHTML));
     76         }
     77         for(var i=0;i<td2s.length;i++){
     78             tdArray2.push(parseInt(td2s[i].innerHTML));
     79         }
     80         for(var i=0;i<td3s.length;i++){
     81             tdArray3.push(parseInt(td3s[i].innerHTML));
     82         }
     83         var tds=document.getElementsByName("td"+obj.id.substr(2,1));
     84         var columnArray=[];
     85         for(var i=0;i<tds.length;i++){
     86             columnArray.push(parseInt(tds[i].innerHTML));
     87         }
     88         var orginArray=[];
     89         for(var i=0;i<columnArray.length;i++){
     90             orginArray.push(columnArray[i]);
     91         }
     92         if(obj.className=="as"){
     93             columnArray.sort(sortNumberAS);               //排序后的新值
     94             obj.className="desc";
     95         }else{
     96             columnArray.sort(sortNumberDesc);               //排序后的新值
     97             obj.className="as";
     98         }
     99 
    100 
    101         for(var i=0;i<columnArray.length;i++){
    102             for(var j=0;j<orginArray.length;j++){
    103                 if(orginArray[j]==columnArray[i]){
    104                     document.getElementsByName("td0")[i].innerHTML=tdArray0[j];
    105                     document.getElementsByName("td1")[i].innerHTML=tdArray1[j];
    106                     document.getElementsByName("td2")[i].innerHTML=tdArray2[j];
    107                     document.getElementsByName("td3")[i].innerHTML=tdArray3[j];
    108                     orginArray[j]=null;
    109                     break;
    110                 }
    111             }
    112         }
    113     }
    114 </script>
  • 相关阅读:
    2021暑假模拟赛6
    2021暑假模拟赛5
    2021暑假模拟赛4
    2021暑假模拟赛3
    2021暑假模拟赛2
    umi提速方案之 mfsu
    Nginx (可为容器)配置 BasicAuth 与访问
    Mango 漫画管理器体验
    blivechat 在 OBS 中使用 BasicAuth URL 登录
    Electron 实现最小化到托盘
  • 原文地址:https://www.cnblogs.com/stsinghua/p/6418652.html
Copyright © 2020-2023  润新知