我正在尝试使用JavaScript对表进行排序。为什么在使用javascript排序表时丢失了值
function test() {
var table = document.getElementById("myTable");
var allRow = table.getElementsByTagName('tr');
var ar = new Array();
for(var i = 1; i < allRow.length; i++) {
ar[i - 1] = allRow[i];
}
//sort the data according to number
ar.sort(function(l, r) {
var num1 = parseInt(l.childNodes[1].innerHTML);
var num2 = parseInt(r.childNodes[1].innerHTML);
return (num1 > num2) ? 1 : ((num1 < num2) ? -1 : 0);
});
//assigning the sorted data in the table
for(var i = 0; i < ar.length; i++) {
allRow[i + 1].innerHTML = ar[i].innerHTML;
}
}
但是,当我试图分配表中的排序数据不知道它不。但是,如果我将ar
数据保存在一个新阵列中,然后将其分配到allRow
中。我在这方面完全是新手。那么任何人都可以告诉我为什么会发生这种情况?
var tmp = new Array();
for(var i = 0 ; i<ar.length ; i++){
tmp[i] = ar[i].innerHTML;
}
for(var i = 0; i < ar.length; i++) {
allRow[i + 1].innerHTML = tmp[i];
}
是否可以张贴上的jsfiddle的例子吗? – 2012-04-02 06:30:09
sort函数可以返回'num1 - num2'。 – RobG 2012-04-02 07:04:48