2010-05-06 45 views
2

我使用Ajax獲取一些XML,然後用結果填充表單中的某些字段。表單上有一個數字字段,我想按這個數字排序結果(最高優先)。jQuery - 排序數組?

我將如何去做這個jQuery?

我的js代碼的功能是目前:

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");} 
    }); 
} 

Links標籤是一個我想它排序。

由於

爲了參考其是越來越返回的XML是這樣的:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<Response> 
    <ResponseCode>1</ResponseCode> 
    <ResponseStatus>OK</ResponseStatus> 
    <ReportId>2</ReportId> 
    <UrlChecked /> 
    <MaxLinks>75</MaxLinks> 
    <PagesFound>121</PagesFound> 

    <URLs> 
<URL> 
     <Page>http://www.example.co.uk/blog</Page> 
     <Links>78</Links> 
    </URL> 
    <URL> 
     <Page>http://www.example.co.uk/blog/</Page> 

     <Links>78</Links> 
    </URL> 
    <URL> 
     <Page>http://www.example.co.uk/blog/author/example/</Page> 
     <Links>78</Links> 
    </URL> 
    <URL> 

     <Page>http://www.example.co.uk/blog/author/example/page/2/</Page> 
     <Links>78</Links> 
    </URL> 
</URLS> 
</Response> 

回答

4

首先,我提出用由持有URL和鏈接對象的元件的陣列。之後,我對它進行了整理並填充了數據。

的代碼看起來是這樣的:

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");} 
    }); 
} 

我還沒有與存根數據測試,因此它可能有一些錯誤,但你可能可以修復它。