javascript操作表格排序?qū)嵗治?/h1>
更新時間:2015年05月06日 14:40:26 作者:kinmin2012
這篇文章主要介紹了javascript操作表格排序,涉及javascript數(shù)組排序與表格操作的相關技巧,需要的朋友可以參考下
本文實例講述了javascript操作表格排序的方法。分享給大家供大家參考。具體如下:
完整例子如下:
<html>
<head>
<title>Table Sort Example</title>
<script type="text/javascript">
//轉(zhuǎn)換器,將列的字段類型轉(zhuǎn)換為可以排序的類型:String,int,float
function convert(sValue, sDataType) {
switch(sDataType) {
case "int":
return parseInt(sValue);
case "float":
return parseFloat(sValue);
case "date":
return new Date(Date.parse(sValue));
default:
return sValue.toString();
}
}
//排序函數(shù)產(chǎn)生器,iCol表示列索引,sDataType表示該列的數(shù)據(jù)類型
function generateCompareTRs(iCol, sDataType) {
return function compareTRs(oTR1, oTR2) {
var vValue1 = convert(oTR1.cells[iCol].firstChild.nodeValue, sDataType);
var vValue2 = convert(oTR2.cells[iCol].firstChild.nodeValue, sDataType);
if (vValue1 < vValue2) {
return -1;
} else if (vValue1 > vValue2) {
return 1;
} else {
return 0;
}
};
}
//排序方法
function sortTable(sTableID, iCol, sDataType) {
var oTable = document.getElementById(sTableID);
var oTBody = oTable.tBodies[0];
var colDataRows = oTBody.rows;
var aTRs = new Array;
//將所有列放入數(shù)組
for (var i=0; i < colDataRows.length; i++) {
aTRs[i] = colDataRows[i];
}
//判斷最后一次排序的列是否與現(xiàn)在要進行排序的列相同,
//是的話,直接使用reverse()逆序
if (oTable.sortCol == iCol) {
aTRs.reverse();
} else {
//使用數(shù)組的sort方法,傳進排序函數(shù)
aTRs.sort(generateCompareTRs(iCol, sDataType));
}
var oFragment = document.createDocumentFragment();
for (var i=0; i < aTRs.length; i++) {
oFragment.appendChild(aTRs[i]);
}
oTBody.appendChild(oFragment);
//記錄最后一次排序的列索引
oTable.sortCol = iCol;
}
</script>
</head>
<body>
<p>Click on the table header to sort in ascending order.</p>
<table border="1" id="tblSort">
<thead>
<tr>
<th onclick="sortTable('tblSort', 0)"
style="cursor:pointer">Last Name</th>
<th onclick="sortTable('tblSort', 1)"
style="cursor:pointer">First Name</th>
<th onclick="sortTable('tblSort', 2, 'date')"
style="cursor:pointer">Birthday</th>
<th onclick="sortTable('tblSort', 3, 'int')"
style="cursor:pointer">Siblings</th>
</tr>
</thead>
<tbody>
<tr>
<td>Smith</td>
<td>John</td>
<td>7/12/1978</td>
<td>2</td>
</tr>
<tr>
<td>Johnson</td>
<td>Betty</td>
<td>10/15/1977</td>
<td>4</td>
</tr>
<tr>
<td>Henderson</td>
<td>Nathan</td>
<td>2/25/1949</td>
<td>1</td>
</tr>
<tr>
<td>Williams</td>
<td>James</td>
<td>7/8/1980</td>
<td>4</td>
</tr>
<tr>
<td>Gilliam</td>
<td>Michael</td>
<td>7/22/1949</td>
<td>1</td>
</tr>
<tr>
<td>Walker</td>
<td>Matthew</td>
<td>1/14/2000</td>
<td>3</td>
</tr>
</tbody>
</table>
</body>
</html>
希望本文所述對大家的javascript程序設計有所幫助。
相關文章
-
JavaScript實現(xiàn)移動端頁面按手機屏幕分辨率自動縮放的最強代碼
這篇文章主要介紹了JavaScript實現(xiàn)移動端頁面按手機屏幕分辨率自動縮放的最強代碼,通過阻止瀏覽器的默認行為各方面分析縮放的功能實現(xiàn),具體操作步驟大家可查看下文的詳細講解,感興趣的小伙伴們可以參考一下。 2017-08-08
-
javascript實現(xiàn)滾動效果的數(shù)字時鐘實例
這篇文章主要是介紹使用javascript來實現(xiàn)數(shù)字時鐘滾動的效果,非常實用,有需要的朋友們可以來參考學習。 2016-07-07
-
js中判斷一個數(shù)是不是素數(shù)的三種方法例子
這篇文章主要給大家介紹了關于js中如何判斷一個數(shù)是不是素數(shù)的三種方法,素數(shù)(只能被1和本身整除的數(shù))規(guī)律:把這個數(shù)除以它之前的每一個數(shù)(從2開始)只要找到一個整除(余數(shù)為0)就是非素數(shù),需要的朋友可以參考下 2023-10-10
-
網(wǎng)頁中JS函數(shù)自動執(zhí)行常用三種方法
這篇文章主要為大家詳細介紹了網(wǎng)頁中JS函數(shù)自動執(zhí)行常用三種方法,感興趣的小伙伴們可以參考一下 2016-03-03
最新評論
本文實例講述了javascript操作表格排序的方法。分享給大家供大家參考。具體如下:
完整例子如下:
<html> <head> <title>Table Sort Example</title> <script type="text/javascript"> //轉(zhuǎn)換器,將列的字段類型轉(zhuǎn)換為可以排序的類型:String,int,float function convert(sValue, sDataType) { switch(sDataType) { case "int": return parseInt(sValue); case "float": return parseFloat(sValue); case "date": return new Date(Date.parse(sValue)); default: return sValue.toString(); } } //排序函數(shù)產(chǎn)生器,iCol表示列索引,sDataType表示該列的數(shù)據(jù)類型 function generateCompareTRs(iCol, sDataType) { return function compareTRs(oTR1, oTR2) { var vValue1 = convert(oTR1.cells[iCol].firstChild.nodeValue, sDataType); var vValue2 = convert(oTR2.cells[iCol].firstChild.nodeValue, sDataType); if (vValue1 < vValue2) { return -1; } else if (vValue1 > vValue2) { return 1; } else { return 0; } }; } //排序方法 function sortTable(sTableID, iCol, sDataType) { var oTable = document.getElementById(sTableID); var oTBody = oTable.tBodies[0]; var colDataRows = oTBody.rows; var aTRs = new Array; //將所有列放入數(shù)組 for (var i=0; i < colDataRows.length; i++) { aTRs[i] = colDataRows[i]; } //判斷最后一次排序的列是否與現(xiàn)在要進行排序的列相同, //是的話,直接使用reverse()逆序 if (oTable.sortCol == iCol) { aTRs.reverse(); } else { //使用數(shù)組的sort方法,傳進排序函數(shù) aTRs.sort(generateCompareTRs(iCol, sDataType)); } var oFragment = document.createDocumentFragment(); for (var i=0; i < aTRs.length; i++) { oFragment.appendChild(aTRs[i]); } oTBody.appendChild(oFragment); //記錄最后一次排序的列索引 oTable.sortCol = iCol; } </script> </head> <body> <p>Click on the table header to sort in ascending order.</p> <table border="1" id="tblSort"> <thead> <tr> <th onclick="sortTable('tblSort', 0)" style="cursor:pointer">Last Name</th> <th onclick="sortTable('tblSort', 1)" style="cursor:pointer">First Name</th> <th onclick="sortTable('tblSort', 2, 'date')" style="cursor:pointer">Birthday</th> <th onclick="sortTable('tblSort', 3, 'int')" style="cursor:pointer">Siblings</th> </tr> </thead> <tbody> <tr> <td>Smith</td> <td>John</td> <td>7/12/1978</td> <td>2</td> </tr> <tr> <td>Johnson</td> <td>Betty</td> <td>10/15/1977</td> <td>4</td> </tr> <tr> <td>Henderson</td> <td>Nathan</td> <td>2/25/1949</td> <td>1</td> </tr> <tr> <td>Williams</td> <td>James</td> <td>7/8/1980</td> <td>4</td> </tr> <tr> <td>Gilliam</td> <td>Michael</td> <td>7/22/1949</td> <td>1</td> </tr> <tr> <td>Walker</td> <td>Matthew</td> <td>1/14/2000</td> <td>3</td> </tr> </tbody> </table> </body> </html>
希望本文所述對大家的javascript程序設計有所幫助。
相關文章
JavaScript實現(xiàn)移動端頁面按手機屏幕分辨率自動縮放的最強代碼
這篇文章主要介紹了JavaScript實現(xiàn)移動端頁面按手機屏幕分辨率自動縮放的最強代碼,通過阻止瀏覽器的默認行為各方面分析縮放的功能實現(xiàn),具體操作步驟大家可查看下文的詳細講解,感興趣的小伙伴們可以參考一下。2017-08-08javascript實現(xiàn)滾動效果的數(shù)字時鐘實例
這篇文章主要是介紹使用javascript來實現(xiàn)數(shù)字時鐘滾動的效果,非常實用,有需要的朋友們可以來參考學習。2016-07-07js中判斷一個數(shù)是不是素數(shù)的三種方法例子
這篇文章主要給大家介紹了關于js中如何判斷一個數(shù)是不是素數(shù)的三種方法,素數(shù)(只能被1和本身整除的數(shù))規(guī)律:把這個數(shù)除以它之前的每一個數(shù)(從2開始)只要找到一個整除(余數(shù)為0)就是非素數(shù),需要的朋友可以參考下2023-10-10網(wǎng)頁中JS函數(shù)自動執(zhí)行常用三種方法
這篇文章主要為大家詳細介紹了網(wǎng)頁中JS函數(shù)自動執(zhí)行常用三種方法,感興趣的小伙伴們可以參考一下2016-03-03