私は単純な天気予報アプリケーションを書いていますが、for ループに悩まされています。アイデアは、場所の小さな配列の天気を取得し、それぞれの予測を独自の div にロードすることです。これまでのコードは次のとおりです。
$(function () {
var z = ["location ID1", "location ID2", etc.];
var n = ["location name1", "location name2", etc];
for (j = 0; j<z.length; j++) {
weatherQuery = 'SELECT * FROM rss WHERE url="http://xml.weather.yahoo.com/forecastrss/' + z[j] + '_c.xml"';
$('#weatherData').append($('<div/>', {id: 'c' + j}));
$('#c' + j + '').append('' + n[j] + '');
var weatherUrl = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent(weatherQuery) + '&format=json';
$.getJSON(weatherUrl + '&callback=?', function (data) {
var weatherForecasts = data.query.results.item.forecast;
for (i=0; i<weatherForecasts.length; i++) {
var code = weatherForecasts[i].code;
$('#c' + j + '').append('<table style = border:none><tr><td class = weather-date>' + weatherForecasts[i].day + '</td><td class = weather-icon style = background-position:-' + (61 * code ) + 'px 0px></td><td class = weather-min>' + weatherForecasts[i].low + '°</td><td class = weather-max>' + weatherForecasts[i].high + '°</td></tr></table>');
}
});
}
});
Firebug からわかる限り、最初の部分は機能します。正しい気象データが取得され、新しい div が親 div に作成されています。正しい場所名も新しい div のそれぞれに追加されています。それが落ちたのは、各divに天気データを追加することです。2 番目 (最後) の追加ステートメントで子 div を識別して、各 div の気象データ解析ループを 1 回反復する正しい方法は何ですか? ありがとう。