关于javascript:组排序JQuery列表元素

Group sorting JQuery list elements

我想根据列表元素的组对其进行排序。

例如:

这是:

  • 苹果-水果
  • 香蕉-水果
  • 酸弹-糖果
  • 葡萄-水果
  • 蔓越莓-水果
  • 巧克力-糖果

将成为:

  • 苹果-水果
  • 香蕉-水果
  • 蔓越莓-水果
  • 葡萄-水果
  • 巧克力-糖果
  • 酸弹-糖果

按照字母顺序,先对水果的分组项进行排序,然后再对甜品进行排序。

我不太确定如何做到这两种都是正确的。例如,我尝试先对组进行排序,然后对食物项进行排序,但不会对组进行排序。

1
2
3
4
5
6
7
8
9
function sorting() {

function sortASC(a, b) {
    return $(b).find(".group").text() < $(a).find(".group").text();
}

$("li").sort(sortASC).appendTo('ul');

}


您可以将其全部构建成一个排序函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function sortASC(a, b) {
    // Cache Text
    var a_group = $(a).find(".group").text(),
        a_item = $(a).find(".item").text(),
        b_group = $(b).find(".group").text(),
        b_item = $(b).find(".item").text()

    return (
        b_group < a_group            // If group is bigger
        || (                         // OR
            b_group == a_group       // If groups are same
            && b_item < a_item       // AND item is bigger
        )
    );
}

小提琴示例