<style> th {cursor : pointer;} </style> <table border="1" id="table"> <thead> <tr> <th>年龄</th> <th>出生日期</th> <th>价格</th> </tr> </thead> <tbody> <tr> <td>23</td> <td>1988-03-30</td> <td>10000</td> </tr> <tr> <td>21</td> <td>1986-02-14</td> <td>8000</td> </tr> <tr> <td>25</td> <td>1989-02-28</td> <td>6000</td> </tr> </tbody> </table> <script> window.onload = function() { var ths = table.tHead.rows[0].cells; for(var i = 0 ; i < ths.length ; i++) { ths[i].onclick = function(i) { return function() { sortFun(i + 1); }; }(i); } }; function sortFun(num) { var rows = table.tBodies[0].rows; var arr = []; for(var i = 0 ; i < rows.length ; i++) { arr.push(rows[i]); } arr.sort(window['sort' + num]); for(var i = 0 ; i < arr.length ; i++) { table.tBodies[0].appendChild(arr[i]); } } function sort1(a , b) { var num1 = parseInt(a.cells[0].firstChild.nodeValue); var num2 = parseInt(b.cells[0].firstChild.nodeValue); return num1 - num2; } function sort2(a , b) { var arrs1 = a.cells[1].firstChild.nodeValue.split('-'); var arrs2 = b.cells[1].firstChild.nodeValue.split('-'); var date1 = new Date(arrs1[0] , arrs1[1] , arrs1[2]); var date2 = new Date(arrs2[0] , arrs2[1] , arrs2[2]); return date1.getTime() - date2.getTime() ; } function sort3(a , b) { var num1 = parseInt(a.cells[2].firstChild.nodeValue); var num2 = parseInt(b.cells[2].firstChild.nodeValue); return num1 - num2; } </script>