使用Javascript高亮显示关键词 Day 13: 不充分的课程准备
Nov 02

有时候,需要对网页表格中的数据进行排序,这个可以在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>

<script language="javascript" type="text/javascript">
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。

随机日志

Leave a Reply