Reputation: 5308
how can i sort all officers
based on their ranks
jQuery
$.get('officers.xml', function(grade){
$(grade).find('officer').each(function(){
var $rank = $(this).attr('rank');
});
});
XML (officer.xml)
<grade>
<officer rank="2"></student>
<officer rank="3"></student>
<officer rank="1"></student>
</grade>
thanks.
Upvotes: 6
Views: 9883
Reputation: 235962
$.get('officers.xml', function(grade){
var officer = $(grade).find('officer');
officer.sort(function(a, b){
return (parseInt($(a).attr('rank')) - parseInt($(b).attr('rank')));
});
officer.each(function(i,v){
alert($(v).attr('rank'));
});
});
Upvotes: 8
Reputation: 8981
In case you generate dynamically your xml file on the server the best way is to sort data on the server side. Some discussion is here.
Upvotes: 2
Reputation: 70404
Something like this should work
var officers = $('officer'); // unsorted
function matchRank(a, b) {
return (int)a.attr('rank') - (int)b.attr('rank');
};
officers.sort(matchRank); // sorted
Upvotes: 0