Javascript 如何使用2个(!)数据属性对div进行排序?

Javascript 如何使用2个(!)数据属性对div进行排序?,javascript,jquery,html,sorting,Javascript,Jquery,Html,Sorting,我想使用2个数据属性对div进行排序。我使用这个代码 <div class='fff' data-player="77" data-revision="0">Oxlade</div> <div class="fff" data-player="85" data-revision="0">Draxler</div> <div class="fff" data-player="80" data-revision="4">Kamara<

我想使用2个数据属性对div进行排序。我使用这个代码

<div class='fff' data-player="77" data-revision="0">Oxlade</div>
<div class="fff" data-player="85" data-revision="0">Draxler</div>
<div class="fff" data-player="80" data-revision="4">Kamara</div>
但它只在数据播放器上排序,而不是数据修改?! 所以他首先要对修订进行排序, 卡马拉应该排在排序之后,因为他的“修订版”比其他人高,其次是德拉克斯勒,因为他比奥克斯利德高,最后一个奥克斯利德可以使用。sort()

注意:此代码将从高数据播放器排序到低数据播放器

下一个代码将按数据修订进行排序

$('.fff').sort(function (a, b) {
   return parseInt($(b).attr('data-revision')) - parseInt($(a).attr('data-revision'));
}).appendTo('body');

排序两次(问题更新后)


正如@Mohamed Yousef所提到的,您可以使用
.sort()
功能,但是其他答案中的逻辑有点不正确

这个电话看起来应该是

$('.fff').sort(function (a, b) {
         return  ($(b).data('revision')+ "" + $(b).data('player')) - ($(a).data('revision')+ "" + $(a).data('player'));
    }).appendTo('body');
这是由于这样一个事实,即先进行一次排序,再进行另一次排序,只会运行一个新的排序。为了使排序正确运行,您需要进行某种连接


是的,但这只会对“数据播放器”进行排序。我怎样才能先按修订再按数据修订进行排序?@J.terWeele更新答案??虽然我们可以为您这样做,但这不是本网站的目的;您应该发布自己尝试的解决方案,解释哪里出了问题(以及它是如何出问题的),以及您被困在哪里。我们不是来帮你工作的,而是来帮助你解决和解决代码中的问题。@DavidThomas完成了,你现在能帮忙吗?我懒得发布一些代码,但我建议比较
a.data-player
b.data-player
(因为它们都是数字,所以要减去它们),然后在返回正数、负数或0之前,检查是否将返回0。如果将返回0,则将
a.data-revision
b.data-revision
进行比较。如果需要反转其中一个字段的顺序,则乘以
-1
,它将反转正在排序的字段的排序顺序。
$('.fff').sort(function (a, b) {
   return parseInt($(b).attr('data-revision')) - parseInt($(a).attr('data-revision'));
}).appendTo('body');
    $(".fff").sort(function (a, b) {return parseInt($(b).attr('data-player')) - parseInt($(a).attr('data-player'));
    }).sort(function (a, b) {
             return parseInt($(b).attr('data-revision')) - parseInt($(a).attr('data-revision'));
    }).appendTo('body');
$('.fff').sort(function (a, b) {
         return  ($(b).data('revision')+ "" + $(b).data('player')) - ($(a).data('revision')+ "" + $(a).data('player'));
    }).appendTo('body');