appendChild:1、先把元素从原有的父级上删掉。2、添加到新的父级。
排序的原理:从一堆数里找出一个最小的数用appendChild插入到最后,再在剩下的数里找最小的数用appendChild插入到最后,如此重复就能找把所有的数实现排序。
表格排序思路:
1、获取元素。
2、创建一个空数组 var arr=[];
3、用for循环把表格的每行数赋值给数组 arr[i]=oTable.tBodies[0].rows[i];
4、用sort()把数组里面的元素进行排序。
5、用for循环把数组里排好序的数用appendChild插入到tBodies。
完整代码:
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title>排序</title> 6 <script> 7 window.onload=function() 8 { 9 var oBtn=document.getElementById('btn'); 10 var oTable=document.getElementById('table'); 11 12 oBtn.onclick=function() 13 { 14 var arr=[]; 15 for(var i=0;i<oTable.tBodies[0].rows.length;i++) 16 { 17 arr[i]=oTable.tBodies[0].rows[i]; 18 }; 19 20 arr.sort(function(tr1,tr2){ 21 n1=parseInt(tr1.cells[0].innerHTML); 22 n2=parseInt(tr2.cells[0].innerHTML); 23 return n1-n2; 24 }); 25 26 for(var i=0;i<arr.length;i++) 27 { 28 oTable.tBodies[0].appendChild(arr[i]); 29 }; 30 }; 31 }; 32 </script> 33 </head> 34 35 <body> 36 <input type="button" value="排序" id="btn" /> 37 <table id="table" border="1" width="100%" cellpadding="0" cellspacing="0"> 38 <thead> 39 <tr> 40 <th>ID</th> 41 <th>姓名</th> 42 <th>专业</th> 43 </tr> 44 </thead> 45 <tbody> 46 <tr> 47 <td>58</td> 48 <td>Simon</td> 49 <td>网站设计</td> 50 </tr> 51 <tr> 52 <td>20</td> 53 <td>Melon</td> 54 <td>网站设计</td> 55 </tr> 56 <tr> 57 <td>98</td> 58 <td>张三</td> 59 <td>物流</td> 60 </tr> 61 <tr> 62 <td>87</td> 63 <td>李四三</td> 64 <td>物流</td> 65 </tr> 66 <tr> 67 <td>798</td> 68 <td>张三</td> 69 <td>物流</td> 70 </tr> 71 </tbody> 72 </table> 73 </body> 74 </html>