javascript操作表格排序?qū)嵗治?/h1>
更新時(shí)間:2015年05月06日 14:40:26 作者:kinmin2012
這篇文章主要介紹了javascript操作表格排序,涉及javascript數(shù)組排序與表格操作的相關(guān)技巧,需要的朋友可以參考下
本文實(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)在要進(jìn)行排序的列相同,
//是的話,直接使用reverse()逆序
if (oTable.sortCol == iCol) {
aTRs.reverse();
} else {
//使用數(shù)組的sort方法,傳進(jìn)排序函數(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>
希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- Javascript 表格操作實(shí)現(xiàn)代碼
- 基于javascript實(shí)現(xiàn)表格的簡(jiǎn)單操作
- javascript實(shí)現(xiàn)對(duì)表格元素進(jìn)行排序操作
- javascript實(shí)現(xiàn)表格增刪改操作實(shí)例詳解
- JavaScript表格常用操作方法匯總
- JavaScript DOM操作表格及樣式
- javascript 表格內(nèi)容排序 簡(jiǎn)單操作示例代碼
- JavaScript動(dòng)態(tài)操作表格實(shí)例(添加,刪除行,列及單元格)
- javascript操作表格
- JScript實(shí)現(xiàn)表格的簡(jiǎn)單操作
相關(guān)文章
-
JavaScript實(shí)現(xiàn)移動(dòng)端頁(yè)面按手機(jī)屏幕分辨率自動(dòng)縮放的最強(qiáng)代碼
這篇文章主要介紹了JavaScript實(shí)現(xiàn)移動(dòng)端頁(yè)面按手機(jī)屏幕分辨率自動(dòng)縮放的最強(qiáng)代碼,通過阻止瀏覽器的默認(rèn)行為各方面分析縮放的功能實(shí)現(xiàn),具體操作步驟大家可查看下文的詳細(xì)講解,感興趣的小伙伴們可以參考一下。 2017-08-08
-
javascript實(shí)現(xiàn)滾動(dòng)效果的數(shù)字時(shí)鐘實(shí)例
這篇文章主要是介紹使用javascript來實(shí)現(xiàn)數(shù)字時(shí)鐘滾動(dòng)的效果,非常實(shí)用,有需要的朋友們可以來參考學(xué)習(xí)。 2016-07-07
-
js中判斷一個(gè)數(shù)是不是素?cái)?shù)的三種方法例子
這篇文章主要給大家介紹了關(guān)于js中如何判斷一個(gè)數(shù)是不是素?cái)?shù)的三種方法,素?cái)?shù)(只能被1和本身整除的數(shù))規(guī)律:把這個(gè)數(shù)除以它之前的每一個(gè)數(shù)(從2開始)只要找到一個(gè)整除(余數(shù)為0)就是非素?cái)?shù),需要的朋友可以參考下 2023-10-10
-
javascript獲取select值的方法完整實(shí)例
這篇文章主要介紹了javascript獲取select值的方法,結(jié)合完整實(shí)例形式分析了javascript動(dòng)態(tài)遍歷與操作頁(yè)面元素相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下 2019-06-06
-
js截取固定長(zhǎng)度的中英文字符的簡(jiǎn)單實(shí)例
下面是自己寫的一個(gè)簡(jiǎn)單的函數(shù),用于截取固定長(zhǎng)度的字符串,中英文都適用.若有不妥之處還請(qǐng)高手指正 2013-11-11
-
網(wǎng)頁(yè)中JS函數(shù)自動(dòng)執(zhí)行常用三種方法
這篇文章主要為大家詳細(xì)介紹了網(wǎng)頁(yè)中JS函數(shù)自動(dòng)執(zhí)行常用三種方法,感興趣的小伙伴們可以參考一下 2016-03-03
-
原生JS和jQuery操作DOM對(duì)比總結(jié)
這篇文章主要給大家介紹了原生JS和jQuery操作DOM的一些對(duì)比總結(jié),文中總結(jié)了很多的對(duì)比,相信對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,需要的朋友可以參考借鑒,下面來一起看看吧。 2017-01-01
最新評(píng)論
本文實(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)在要進(jìn)行排序的列相同, //是的話,直接使用reverse()逆序 if (oTable.sortCol == iCol) { aTRs.reverse(); } else { //使用數(shù)組的sort方法,傳進(jìn)排序函數(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>
希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。
- Javascript 表格操作實(shí)現(xiàn)代碼
- 基于javascript實(shí)現(xiàn)表格的簡(jiǎn)單操作
- javascript實(shí)現(xiàn)對(duì)表格元素進(jìn)行排序操作
- javascript實(shí)現(xiàn)表格增刪改操作實(shí)例詳解
- JavaScript表格常用操作方法匯總
- JavaScript DOM操作表格及樣式
- javascript 表格內(nèi)容排序 簡(jiǎn)單操作示例代碼
- JavaScript動(dòng)態(tài)操作表格實(shí)例(添加,刪除行,列及單元格)
- javascript操作表格
- JScript實(shí)現(xiàn)表格的簡(jiǎn)單操作
相關(guān)文章
JavaScript實(shí)現(xiàn)移動(dòng)端頁(yè)面按手機(jī)屏幕分辨率自動(dòng)縮放的最強(qiáng)代碼
這篇文章主要介紹了JavaScript實(shí)現(xiàn)移動(dòng)端頁(yè)面按手機(jī)屏幕分辨率自動(dòng)縮放的最強(qiáng)代碼,通過阻止瀏覽器的默認(rèn)行為各方面分析縮放的功能實(shí)現(xiàn),具體操作步驟大家可查看下文的詳細(xì)講解,感興趣的小伙伴們可以參考一下。2017-08-08javascript實(shí)現(xiàn)滾動(dòng)效果的數(shù)字時(shí)鐘實(shí)例
這篇文章主要是介紹使用javascript來實(shí)現(xiàn)數(shù)字時(shí)鐘滾動(dòng)的效果,非常實(shí)用,有需要的朋友們可以來參考學(xué)習(xí)。2016-07-07js中判斷一個(gè)數(shù)是不是素?cái)?shù)的三種方法例子
這篇文章主要給大家介紹了關(guān)于js中如何判斷一個(gè)數(shù)是不是素?cái)?shù)的三種方法,素?cái)?shù)(只能被1和本身整除的數(shù))規(guī)律:把這個(gè)數(shù)除以它之前的每一個(gè)數(shù)(從2開始)只要找到一個(gè)整除(余數(shù)為0)就是非素?cái)?shù),需要的朋友可以參考下2023-10-10javascript獲取select值的方法完整實(shí)例
這篇文章主要介紹了javascript獲取select值的方法,結(jié)合完整實(shí)例形式分析了javascript動(dòng)態(tài)遍歷與操作頁(yè)面元素相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-06-06js截取固定長(zhǎng)度的中英文字符的簡(jiǎn)單實(shí)例
下面是自己寫的一個(gè)簡(jiǎn)單的函數(shù),用于截取固定長(zhǎng)度的字符串,中英文都適用.若有不妥之處還請(qǐng)高手指正2013-11-11網(wǎng)頁(yè)中JS函數(shù)自動(dòng)執(zhí)行常用三種方法
這篇文章主要為大家詳細(xì)介紹了網(wǎng)頁(yè)中JS函數(shù)自動(dòng)執(zhí)行常用三種方法,感興趣的小伙伴們可以參考一下2016-03-03原生JS和jQuery操作DOM對(duì)比總結(jié)
這篇文章主要給大家介紹了原生JS和jQuery操作DOM的一些對(duì)比總結(jié),文中總結(jié)了很多的對(duì)比,相信對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,需要的朋友可以參考借鑒,下面來一起看看吧。2017-01-01