有时候,需要对网页表格中的数据进行排序,这个可以在server端完成,也可以使用Javascript完成。Javascript完成的示例代码如下:
<html>
<body>
<table border=”1″ id=”tblSort”>
<thead>
<tr>
?<th onclick=”sortTable(’tblSort’)” style=”cursor:pointer;background-color:silver”>Last Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>Smith</td>
</tr>
<tr>
<td>Johnson</td>
</tr>
<tr>
<td>Henderson</td>
</tr>
<tr>
<td>Williams</td>
</tr>
<tr>
<td>Gilliam</td>
</tr>
<tr>
<td>Walker</td>
</tr>
</tbody>
</table>
var direction = 0;
function compareTRs(oTR1, oTR2) {
var sValue1 = oTR1.cells[0].firstChild.nodeValue;
var sValue2 = oTR2.cells[0].firstChild.nodeValue;
return sValue1.localeCompare(sValue2);
}
function sortTable(sTableID){
var oTable = document.getElementById(sTableID);
var oTBody = oTable.tBodies[0];
var colDataRows = oTBody.rows;
var aTRs = new Array;
for (var i=0; i < colDataRows.length; i++) {
aTRs[i] = colDataRows[i];
}
aTRs.sort(compareTRs);
if(direction == 1){
aTRs.reverse();
direction = 0;
}
else{
direction = 1;
}
var oFragment = document.createDocumentFragment();
for (var i=0; i < aTRs.length; i++) {
oFragment.appendChild(aTRs[i]);
}
oTBody.appendChild(oFragment);
}
</script>
</body>
<html>
参考《Professional Javascript for Web Developers》by Nicholas C. Zakas。
最新评论