我正在尝试为表创建自己的排序函数,我不允许使用插件作为我的大学课程的一部分。
现在我在这里有一些JavaScript标记,可以很好地对表格进行排序:
var newDirection = 1;
if ($(this).is('.sorted-asc')) {
newDirection = -1;
}
var rows = $table.find('tbody > tr').get();
$.each(rows, function(index, row) {
row.sortKey =
findSortKey($(row).children('td').eq(column));
});
rows.sort(function(a, b) {
if (a.sortKey < b.sortKey) return -newDirection;
if (a.sortKey > b.sortKey) return newDirection;
return 0;
});
sortkey变量只是按Alpha或数字排序。
在这里,我将更改表中的行,使其顺序正确:
$.each(rows, function (index, row) {
$table.children('tbody').append(row);
row.sortKey = null;
});
现在我想要解决的问题是,有没有办法可以改变排序?我并不是说.reverse()
会颠倒表行的顺序,而是实际清除排序并将值恢复到原来的状态。
我想让它成为默认的表顺序。
修改 这是我的尝试: 在我声明了行变量后,我声明了一个前一个变量:
var previous = $table.find('tbody > tr').get();
然后尝试按照与我设置方式类似的方式重新排序:
$table.siblings('a.reset').click(function () {
$.each(previous, function (index, row) {
$table.children('tbody').append(row);
});
});