I have a ajax function which actually pull this message_count data from server every 3 mins and update the attribute of each player accordingly... now i want to get the divs automatically gets sorted after this ajax call based on message_count attribute value in descending order... so the player who got more messages will come as first div.
var sortedDivs = jQuery(".players").find(".player").toArray().reverse(sorter);
jQuery.each(sortedDivs, function(index, value) {
jQuery(".players").append(value);
});
function sorter(a, b) {
return a.getAttribute('message_count') - b.getAttribute('message_count');
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="players">
<div class="player" message_count="8">8</div>
<div class="player" message_count="2">2</div>
<div class="player" message_count="0">0</div>
<div class="player" message_count="1">1</div>
</div>
sortinstead ofreversei.e.jQuery(".players").find(".player").sort(sorter).appendTo(".players"); function sorter(a, b) { return b.getAttribute('message_count') - a.getAttribute('message_count'); };