views:

104

answers:

3

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.

A: 

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
RaYell
+1  A: 

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.

Lukasz Dziedzia
+1 thanks for the info, i'll probably switch to server-side later.
pixeltocode
+1  A: 
$.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'));
  });
});    
jAndy
+1. thanks for that :)
pixeltocode