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 ) ); } |
小提琴示例