这个jQuery排序函数如何工作?

时间:2014-04-02 00:29:58

标签: javascript jquery sorting

这是一个后续问题 How to sort children by value in jQuery

这是使用金额值的范围对一堆链接进行排序的代码:

$('#sortamount').on('click', function () {
    $('.entrylink').sort(function(a, b) {
        return $(a).find('.amount').text() - $(b).find('.amount').text();
    })
    .appendTo('#entrytable');
});

我不完全理解这一行:

return $(a).find('.amount').text() - $(b).find('.amount').text();

以及.append如何在将新排序的条目链接附加到表之前清除表。如何进行排序? .appendTo会自动用新排序的内容替换入口表的内容吗?

1 个答案:

答案 0 :(得分:2)

由于您正在使用算术运算,因此在-运算完成之前,LHS和RHS的值都将转换为数字。

这里我们实际上是对DOM元素进行排序,因此在排序之后,您将以新的顺序获得DOM元素。当你在DOM中已经存在的一组DOM元素上使用append时,它将从旧位置移除并将被放置在新位置。