我是靠谱客的博主 动人电源,这篇文章主要介绍js表格排序实例分析(支持int,float,date,string四种数据类型),现在分享给大家,希望可以做个参考。

本文实例讲述了js表格排序的方法。分享给大家供大家参考。具体如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<html> <head> <title>SortTable2</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript"> var k=0; /**//************************************************************************** 排序的主方法,有三个形参,STableTd,iCol,sDataType分别为需要排序的表格ID, 需要排序的表格列号,所在列的数据类型(支持int,float,date,string四种数据类型) **************************************************************************/ function sortTable(sTableId,iCol,sDataType) { var oTable=document.getElementById(sTableId);//获取表格的ID var oTbody=oTable.tBodies[0]; //获取表格的tbody var colDataRows=oTbody.rows; //获取tbody里的所有行的引用 var aTRs=new Array(); //定义aTRs数组用于存放tbody里的行 for(var i=0;i<colDataRows.length;i++) //依次把所有行放如aTRs数组 { aTRs.push(colDataRows[i]); } /**//*********************************************************************** sortCol属性是额外给table添加的属性,用于作顺反两种顺序排序时的判断,区分 首次排序和后面的有序反转 ************************************************************************/ if(oTable.sortCol==iCol) //非首次排序 { aTRs.reverse(); } else //首次排序 { if(k%2==0) //升序 { aTRs.sort(generateCompareTRs(iCol,sDataType)); } else if(k%2==1) //降序 { aTRs.sort(generateCompareTRs1(iCol,sDataType)); } } var oFragment=document.createDocumentFragment(); //创建文档碎片 for(var i=0;i<aTRs.length;i++) //把排序过的aTRs数组成员依次添加到文档碎片 { oFragment.appendChild(aTRs[i]); } oTbody.appendChild(oFragment); //把文档碎片添加到tbody,完成排序后的显示更新 oTable.sortCol=iCol; //把当前列号赋值给sortCol,以此来区分首次排序和非首次排序,//sortCol的默认值为-1 }; //比较函数,用于两项之间的排序 //升序 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 generateCompareTRs1(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 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(); } }; </script> </head> <body> <form name="f1" id="f1" action="" method="post"> <table border="1" id="tblSort" sortCol="-1"> <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">Silbings</th> </tr> </thead> <tbody> <tr> <td>Simth</td> <td>John</td> <td>7/12/1978</td> <td>50nGy/h</td> </tr> <tr> <td>Johnson</td> <td>Betty</td> <td>5/12/1965</td> <td>20nGy/h</td> </tr> <tr> <td>Henderson</td> <td>Nathan</td> <td>10/15/1977</td> <td>130nGy/h</td> </tr> <tr> <td>Willianms</td> <td>James</td> <td>2/25/1949</td> <td>10nGy/h</td> </tr> <tr> <td>Gilliam</td> <td>Michael</td> <td>7/8/1980</td> <td>140nGy/h</td> </tr> <tr> <td>Walker</td> <td>Matthew</td> <td>6/18/1981</td> <td>103nGy/h</td> </tr> </tbody> </table> </form> </body> </html>

希望本文所述对大家的javascript程序设计有所帮助。

最后

以上就是动人电源最近收集整理的关于js表格排序实例分析(支持int,float,date,string四种数据类型)的全部内容,更多相关js表格排序实例分析(支持int内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(234)

评论列表共有 0 条评论

立即
投稿
返回
顶部