jQuery – Tri d’un tableau?

J’utilise Ajax pour obtenir du XML, puis je remplis certains champs d’un formulaire avec les résultats. Il y a un champ numérique sur le formulaire et je voudrais sortinger les résultats par ce nombre (le plus élevé en premier).

Comment ferais-je pour faire cela dans jQuery?

Mon code de fonction js est actuellement:

function linkCounts() { ws_url = "http://archreport.example.co.uk/worker.php?query=linkcounts&domain="+$('#hidden_the_domain').val(); $.ajax({ type: "GET", url: ws_url, dataType: "xml", success: function(xmlIn){ results = xmlIn.getElementsByTagName("URL"); for ( var i = 0; i < results.length; i++ ) { $("#tb_domain_linkcount_url_"+(i+1)).val($(results[i].getElementsByTagName("Page")).text()); $("#tb_domain_linkcount_num_"+(i+1)).val($(results[i].getElementsByTagName("Links")).text()); } $('#img_linkcount_worked').attr("src","/images/worked.jpg"); }, error: function(){$('#img_linkcount_worked').attr("src","/images/failed.jpg");} }); } 

La balise Links est celle sur laquelle je veux sortinger.

Merci

Pour référence, le code XML renvoyé est le suivant:

   1 OK 2  75 121   http://www.example.co.uk/blog 78   http://www.example.co.uk/blog/ 78   http://www.example.co.uk/blog/author/example/ 78   http://www.example.co.uk/blog/author/example/page/2/ 78    

Tout d’abord, j’ai créé un tableau avec des éléments composés d’objects contenant l’url et les liens. Après cela, je l’ai sortingé et rempli les champs avec les données.

Le code ressemble à ceci:

 function linkCounts() { ws_url = "http://archreport.epiphanydev2.co.uk/worker.php?query=linkcounts&domain="+$('#hidden_the_domain').val(); $.ajax({ type: "GET", url: ws_url, dataType: "xml", success: function(xmlIn){ results = xmlIn.getElementsByTagName("URL"); var container = []; for ( var i = 0; i < results.length; i++ ) { container[i] = { url: $(results[i].getElementsByTagName("Page")).text(), links: $(results[i].getElementsByTagName("Links")).text() } } container.sort(function(a, b) { return b.links - a.links; }); for ( var i = 0; i < results.length; i++ ) { $("#tb_domain_linkcount_url_"+(i+1)).val(container.url); $("#tb_domain_linkcount_num_"+(i+1)).val(container.links); } $('#img_linkcount_worked').attr("src","/images/worked.jpg"); }, error: function(){$('#img_linkcount_worked').attr("src","/images/failed.jpg");} }); } 

Je n'ai pas testé avec les données de stub, il peut donc y avoir des erreurs, mais vous pouvez y remédier.