JavaScript排序以清除已经进行的排序

时间:2015-03-17 00:43:52

标签: javascript jquery sorting

我正在尝试为表创建自己的排序函数,我不允许使用插件作为我的大学课程的一部分。

现在我在这里有一些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);
    });
});

0 个答案:

没有答案