JS学习之表格的排序

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6     </head>
 7     <body>
 8         <input id="btn1" type="button" value="排序">
 9         <table id="tab1" width="200" border="1" cellpadding="14">
10             <thead>
11                 <td>序号</td>
12                 <td>姓名</td>
13                 <td>年龄</td>
14             </thead>
15             <tbody>
16                 <tr>
17                     <td>2</td>
18                     <td>张三</td>
19                     <td>20</td>
20                 </tr>
21                 <tr>
22                     <td>4</td>
23                     <td>李四</td>
24                     <td>25</td>
25                 </tr>
26                 <tr>
27                     <td>3</td>
28                     <td>赵龙</td>
29                     <td>30</td>
30                 </tr>
31                 <tr>
32                     <td>1</td>
33                     <td>孙河</td>
34                     <td>21</td>
35                 </tr>
36             </tbody>
37         </table>
38         <script type="text/javascript">
39             var oTab=document.getElementById('tab1');
40             var oBtn=document.getElementById('btn1');
41             oBtn.onclick=function(){
42                 var arr=[]
43                 for(i=0;i<oTab.tBodies[0].rows.length;i++){
44                     arr[i]=oTab.tBodies[0].rows[i];
45                 }
46                 arr.sort(function(tr1,tr2){
47                 var n1=parseInt(tr1.cells[0].innerHTML);    
48                 var n2=parseInt(tr2.cells[0].innerHTML);
49                 return n1-n2;
50                 })
51                 for(i=0;i<arr.length;i++){
52                     oTab.tBodies[0].appendChild(arr[i])
53                 }
54             }
55         </script>
56     </body> 
57 </html>

这里的sort很方便,但是有一个小问题,如:ali=document.getelementbyid(li)   这里的ali严格意义上并不是一个标准的Array,所以sort并不能直接对ali使用。我们用一个arr来实现一个巧妙的转换。这样只要点击排序按钮,表格就会按照从大到小的顺序排列啦

原文地址:https://www.cnblogs.com/zhouliang/p/5497527.html