jQuery排序表->文本前的数字

问题描述 投票:4回答:1

我正在使用等待时间API,以显示迪士尼乐园的当前排队时间。等待时间以字母顺序加载到表中。

现在,我已使用以下代码对表的最高等待时间到最低等待时间对该表进行排序。那就是我想要的:

$(document).ready(function(){
var sorted = $('#mytable tbody tr').sort(function(b, a) {
  var a = $(a).find('td:last').text(), b = $(b).find('td:last').text();
  return a.localeCompare(b, false, {numeric: true})
})

$('#mytable tbody').html(sorted)
});

这很好,但是,如您在图像下方看到的那样,诸如“ Closed”和“ Refurbishment”之类的文本值位于表格上方,等待时间最长。

如何更改表的此顺序,以使表顶部的等待时间最长,最后获得文本值?

Current order, want to change this

所以我想得到:

20 min.
15 min.
5 min.
Open
Closed
Refurbishment
    

我正在使用等待时间API,以显示迪士尼乐园的当前排队时间。等待时间以字母顺序加载到表中。现在,我已经使用以下代码对此进行了排序...

javascript php html jquery jquery-ui
1个回答
2
投票

要根据需要进行排序,您需要根据值是否为数字进行不同的排序。如果两者都是数字,则按当前方式进行比较。否则,如果只有一个数字,则将其放在开头。如果两者都不是数字,则根据所需顺序(OpenClosedRefurbishment)进行排序,这可以通过在定义排序顺序的对象中查找短语来实现:

© www.soinside.com 2019 - 2024. All rights reserved.