2013-02-09 53 views
0

我正在使用jQuery來分析一些xml天氣信息,我無法弄清楚如何限制此代碼只解析前7天的天氣預報,總共有在xml中有10個預測節點,但我只想顯示7.我當前的for循環使其輸出每個預測節點7次,而不是將其限制爲僅循環7次。提前致謝。將jQuery parseXml約束到一定數量的循環

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $.ajax({ 
    type: 'GET', 
    url: 'Poole.xml', 
    dataType: 'xml', 
    success: parseXml 
    }); 
}); 

function parseXml(xml) { 
    $(xml).find('response forecast simpleforecast forecastdays forecastday').each(function() { 
     for (var i=0; i<7; i++) {  
      var weekday = $(this).find("date weekday").text(); 
      var icon_url = $(this).find("icon_url").text(); 
      var conditions = $(this).find("conditions").text(); 
      var high = $(this).find("high celsius").text(); 
      var low = $(this).find("low celsius").text(); 
      $('<li><span><strong>' + weekday + '</strong></span><span><img src="' + icon_url + '" width="75" height="75" /></span><span>' + conditions + '</span><span>High ' + high + '&#176;C/Low ' + low + '&#176;C</span></li>').appendTo('#weatherContent'); 
     } 
    }); 
} 
</script> 

<ul id="weatherContent"></ul> 

您可以下載我的xml文件的副本我在這裏解析:http://temp-share.com/show/2gFHqr478(Poole.xml)

+0

它看起來像你正在運行的爲每個結果循環,而不是在整個集合上運行循環? – Sinaesthetic 2013-02-09 20:37:41

回答

2

使用:lt()選擇:

$("response forecast simpleforecast forecastdays forecastday:lt(7)", xml) 
    .each(function() { ... }); 
+0

謝謝你的工作! – 2013-02-09 20:52:49