我想实现表排序功能。Javascript表排序
它需要保留<td>
和<tr>
的类和一些数据属性,所以我的做法与我在其他示例中看到的略有不同。我在排序功能中使用localeCompare()
。我遇到的问题是,在排序第一个和第七个列表中的项目无序后 - 其余的似乎是按顺序排列的。我尝试改变使用> <
的排序功能,而我有相同的结果。
任何人都可以看一看我的代码,看看我是否有一个明显的错误,请错过?
我测试过的每一列总是第一个&第七。
var sort = function() {
var tbody = document.getElementById(tbody_id),
rows_len = tbody.rows.length,
col_len = tbody.rows[0].cells.length;
//console.log(rows_len, col_len);
var order_hash = [];
//loop rows
for(var i = 0; i < rows_len; i++) {
order_hash[i] = {
value:tbody.rows[i].cells[column].innerHTML,
html: tbody.rows[i].outerHTML
};
}
console.log(order_hash);
order_hash.sort(function(a, b) {
var result = a.value.localeCompare(b.value);
return (order == 'asc') ? result : (result == 0) ? 0 : (result < 1) ? 1 : -1;
});
order_hash.sort();
var html = '';
for(var i = 0; i < rows_len; i++) {
html += order_hash[i].html;
}
tbody.innerHTML = html;
order = undefined;
delete(order_hash);
};
}();
啊对,感谢这么多理解 – JohnnyFaldo 2015-03-31 15:15:19