87,921
社区成员
发帖
与我相关
我的任务
分享
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" language="javascript">
function cusSort(th, order){
order = typeof order !== "undefined" ? order : 1;
var tb = th.parentNode.parentNode.parentNode.tBodies[0];
var arr = [];
for(var i=0; i<tb.rows.length; i++) {
var cell = tb.rows[i].cells[th.cellIndex];
var txt = "";
for(var n = cell.firstChild; n !== null; n.nextSibling) {
if(n.nodeType === 3) {
txt = document.all ? n.nodeValue : n.nodeValue.replace(/^\\n*|^\s*|\s*$|\\n*$/g, "");
break;
}
}
arr.push([txt, tb.rows[i].rowIndex]);
}
arr.sort(function(a, b) { return a[0].localeCompare(b[0]); });
var ntab = tb.parentNode.cloneNode(true);
while(tb.rows.length > 0) tb.deleteRow(0);
if(order) {
// 如果不使用cloneNode,添加行到旧表格时,对应的ntab中的行就消失了...Orz
for(var i=(arr.length-1); i>=0; i--) tb.appendChild(ntab.rows[arr[i][1]].cloneNode(true));
} else {
for(var i=0; i<arr.length; i++) tb.appendChild(ntab.rows[arr[i][1]].cloneNode(true));
}
th.onclick = function() { cusSort(this, !order) };
}
</script>
</head>
<body>
<table id="tab" border="1">
<thead>
<tr>
<th>ID</th>
<th onclick="cusSort(this)">NAME</th>
<th>CLASS</th>
<th>HOME</th>
<th>DESC</th>
</tr>
</thead>
<tbody>
<tr>
<td>01</td>
<td>
JIRO
</td>
<td>A3-5</td>
<td>士大夫棵</td>
<td> </td>
</tr>
<tr>
<td>02</td>
<td>潘生</td>
<td>A3-5</td>
<td>士大夫棵</td>
<td> </td>
</tr>
<tr>
<td>03</td>
<td>戴生</td>
<td>A3-5</td>
<td>士大夫棵</td>
<td> </td>
</tr>
<tr>
<td>04</td>
<td>
肖生
</td>
<td>A3-5</td>
<td>士大夫棵</td>
<td> </td>
</tr>
<tr>
<td>05</td>
<td>蔡国柱</td>
<td>A3-5</td>
<td>士大夫棵</td>
<td> </td>
</tr>
<tr>
<td>06</td>
<td>欧阳兆年</td>
<td>A3-5</td>
<td>士大夫棵</td>
<td> </td>
</tr>
</tbody>
</table>
</body>
</html>
var a = [];
a[11095] = 10;
a[15433] = 5;
// 没有读音的(比如偏旁部首),就统一用zzzzz5来代替,汉字拼音中,最多个应该就5个字母吧??(zhong)
// 或者就干脆返回对应的十进制utf-8编码
var b = ['zzzzz4','han','han1','han2','han3','han4','zi','zi1','zi2','zi3','zi4'];
var str = 'sdkfj汉字kjsdf';
str = str.replace(/[^\x30-\x80]/g, function($0) {
return b[a[parseInt(escape($0).substring(2), 16) - 12288]];
});
alert(str);