组排序JQuery列表元素

时间:2015-09-02 21:20:57

标签: javascript jquery sorting

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

例如:

此:

  • Apple - Fruit
  • 香蕉 - 水果
  • Sour Bomb - Sweets
  • 葡萄 - 水果
  • 蔓越莓 - 水果
  • 巧克力 - 糖果

将成为:

  • Apple - Fruit
  • 香蕉 - 水果
  • 蔓越莓 - 水果
  • 葡萄 - 水果
  • 巧克力 - 糖果
  • Sour Bomb - Sweets

按字母顺序排列,Fruit的组项目先排序,然后排序为Sweets。

我不太确定如何制作它以便两种排序都是正确的。例如,我尝试对组进行排序,然后对食物进行排序,但不会对组进行排序。

function sorting() {

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

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

}

1 个答案:

答案 0 :(得分:1)

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

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
        )
    );
}

<强> Example Fiddle