需求
实现点击刷新的时候按照年份进行排序,使其按照年份进行正序排序,最终效果如下:

jsp代码如下
<table id="edit">
<thead>
<tr>
<th><label class="cc0" for="nf" data-type="INTEGER">年份</label><input
type="hidden"></th>
<th><label class="cc1" for="zcl" data-type="DECIMAL">增长率</label><input
type="hidden"></th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td><input name="" autofocus="" onkeyup="shuzi(this);">
<div class="tips" style="display: none;"></div></td>
<td><input name="" onkeyup="xiaoshu(this);">
<div class="tips" style="display: none;">请输入数字,并且保留两位小数</div></td>
<td><em onclick="del(this)"></em></td>
</tr>
<tr>
<td><input name="" value="2011" onkeyup="shuzi(this);">
<div class="tips"></div></td>
<td><input name="" value="52.08" onkeyup="xiaoshu(this);">
<div class="tips"></div></td>
<td><em onclick="del(this)"></em></td>
</tr>
<tr>
<td><input name="" value="2012" onkeyup="shuzi(this);">
<div class="tips"></div></td>
<td><input name="" value="51.12" onkeyup="xiaoshu(this);">
<div class="tips"></div></td>
<td><em onclick="del(this)"></em></td>
</tr>
<tr>
<td><input name="" value="2013" onkeyup="shuzi(this);">
<div class="tips"></div></td>
<td><input name="" value="50.01" onkeyup="xiaoshu(this);">
<div class="tips"></div></td>
<td><em onclick="del(this)"></em></td>
</tr>
<tr>
<td><input name="" value="2014" onkeyup="shuzi(this);">
<div class="tips"></div></td>
<td><input name="" value="45.88" onkeyup="xiaoshu(this);">
<div class="tips"></div></td>
<td><em onclick="del(this)"></em></td>
</tr>
</tbody>
</table>
js代码如下
function sortTable(){
/*
* 思路:
* 1,排序就需要数组。获取需要参与排序的行对象数组。
* 2,对行数组中的每一个行的年龄单元格的数据进行比较,并完成行对象在数组中的位置置换。
* 3,将排好序的数组重新添加回表格。
*/
var oTabNode = document.getElementById("edit");
var collTrNodes = oTabNode.rows;
//定义一个临时容器,存储需要排序行对象。
var trArr = [];
//遍历原行集合,并将需要排序的行对象存储到临时容器中。
for(var x=1; x<collTrNodes.length; x++){
trArr[x-1] = collTrNodes[x];
}
//对临时容器排个序。
mySort(trArr);
for (var x = 0; x < trArr.length; x++) {
trArr[x].parentNode.appendChild(trArr[x]);
}
}
function mySort(arr){
var temp;
for(var i=0; i<arr.length; i++) {
for(var j=i+1; j<arr.length; j++) {
var td = arr[i].cells[0];
var td1 = arr[j].cells[0];
if(parseInt($(td).find('input').val())>parseInt($(td1).find('input').val())) {
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
