我使用以下代码根据数字对项目进行排序,但是它排序错误。
$('#number').on('click', function() {
var s = $(this).data('sort');
console.log(s);
if (s === 1) {
$(this).data('sort', 0);
$('.mylist > div').sort(function(a, b) {
return a.dataset.sid > b.dataset.sid
}).appendTo('.mylist')
} else {
$(this).data('sort', 1);
$('.mylist > div').sort(function(a, b) {
var temp = a.dataset.sid + " < " + b.dataset.sid
console.log(temp);
return a.dataset.sid < b.dataset.sid
}).appendTo('.mylist')
}
});
默认值为10000,1500,8900,0,0
当我点击一次它将是8900 1500 10000 0 0
如果我再次点击它们将是0 0 10000 1500 8900
控制台如下:
10000 < 1500
10000 < 8900
1500 < 8900
0 < 0
10000 < 0
0 < 0
0 < 10000
1500 < 8900
0 < 8900
10000 < 8900
10000 < 1500
答案 0 :(得分:1)
试试这个:
$('.mylist > div').sort(function(a, b) {
return Number(a.dataset.sid) > Number(b.dataset.sid)
}).appendTo('.mylist')
您似乎按字符串排序,但您希望按数字排序。