<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
table{
margin: 100px auto;
background: -moz-linear-gradient(left, red, #f96, yellow, green, #ace);
background: -webkit-linear-gradient(left,red,#f96,yellow,green,#ace);
background: -o-linear-gradient(left, red, #f96, yellow, green, #ace);
}
table thead th {
cursor: pointer;
-webkit-user-select:none;
}
table tr td{
width: 100px;
border:1px solid black;
}
</style>
</head>
<body>
<table>
<thead>
<th>人名</th>
<th>语文</th>
<th>数学</th>
</thead>
<tr>
<td>张</td>
<td>232</td>
<td>3234</td>
</tr>
<tr>
<td>李</td>
<td>23</td>
<td>6711</td>
</tr>
</table>
<script type="text/javascript">
function listToArray(eles){
if(!(typeof eles=="object"&&eles.length&&eles[eles.length-1])){
throw new Error("不能操作非法的类数组");
}
try{
var a=[].slice.call(eles,0);
}catch(e){
var a=[];
for(var i=0; i<eles.length;i++){
a.push(eles[i])
}
}
return a;
}
var oTable=document.getElementsByTagName('table').item(0);
var oThead=oTable.tHead;
var oTbody=oTable.tBodies.item(0);
var oRows=oTbody.rows;
var aRows=listToArray(oRows);
function rowSort(i,key){
if(key.flag){
key.flag*=-1;
}else{
key.flag=1;
}
aRows.sort(function(a,b){
if(!isNaN(Number(a.cells[i].innerHTML))){
return key.flag*(a.cells[i].innerHTML-b.cells[i].innerHTML);
}else{
return key.flag*(a.cells[i].innerHTML.localeCompare(b.cells[i].innerHTML));
}
});
for(var n=0;n<aRows.length;n++){
oTbody.appendChild(aRows[n]);
}
}
var oThs=oThead.getElementsByTagName("th");
for(var i=0;i<oThs.length;i++){
;(function(i){
oThs[i].οnclick=function(){
rowSort(i,this);
}
})(i)
}
// var s1="男"
// var s2="顺"
// s2.localeCompare(s1)
</script>
</body>
</html>