使用$.getJSON循环遍历数组
Loop through an array using $.getJSON
我使用for循环来迭代日期数组。此数组被传递到JSON请求中。问题是,每次循环时,它只提取数组中的第一个项。。就像它出于某种原因忽略了CCD_ 1或它的缓存一样。我尝试了两种不同的方法,结果都是一样的。有什么建议吗?
第一种方法
for (i = 0; i <= 7; i++) {
(function(i) {
$.getJSON(url + apiKey + "/" + position.coords.latitude + "," + position.coords.longitude + "," + aryDates[i] + "?callback=?", function(data) {
var listItem = document.createElement("li");
listItem.className = "js-day-temp";
$('.js-forecast').append(listItem);
$('.js-day-temp').html(Math.floor(data.daily.data[0].temperatureMin) + '°');
});
})(i);
}
第二种方法
for (i = 0; i <= 7; i++) {
$.ajax({
url: url + apiKey + "/" + position.coords.latitude + "," + position.coords.longitude + "," + aryDates[i] + "?callback=?",
async: false,
dataType: 'json',
success: function(data) {
var listItem = document.createElement("li");
listItem.className = "js-day-temp";
$('.js-forecast').append(listItem);
$('.js-day-temp').html(Math.floor(data.daily.data[0].temperatureMin) + '°');
}
});
}
这就是我提取日期的方式
function GetDates(startDate, daysToAdd) {
var aryDates = [];
var currentDay = [];
for(var i = 0; i <= daysToAdd; i++) {
var currentDate = new Date();
currentDate.setUTCDate(startDate.getUTCDate() + i);
currentDay.push(DayAsString(currentDate.getUTCDay()));
// aryDates.push(DayAsString(currentDate.getDay()) + ", " +
currentDate.getDate() + " " + MonthAsString(currentDate.getMonth()) + " " + currentDate.getFullYear());
aryDates.push(currentDate.getUTCFullYear() + "-" + MonthAsString(currentDate.getUTCMonth()) + "-" + ("0" + (currentDate.getUTCDate()+1)).slice(-2) + "T12:00:00-0400");
}
return aryDates;
return currentDay;
}
function MonthAsString(monthIndex) {
var d=new Date();
var month=new Array();
month[0]="01";
month[1]="02";
month[2]="03";
month[3]="04";
month[4]="05";
month[5]="06";
month[6]="07";
month[7]="08";
month[8]="09";
month[9]="10";
month[10]="11";
month[11]="12";
return month[monthIndex];
}
function DayAsString(dayIndex) {
var weekdays = new Array(7);
weekdays[0] = "Sunday";
weekdays[1] = "Monday";
weekdays[2] = "Tuesday";
weekdays[3] = "Wednesday";
weekdays[4] = "Thursday";
weekdays[5] = "Friday";
weekdays[6] = "Saturday";
return weekdays[dayIndex];
}
var startDate = new Date();
var aryDates = GetDates(startDate, 7);
想明白了!以下是我更改的内容:
$('.js-forecast').append('<li class="js-day-temp ' + 'day-selector' + i + '">' + aryDates[i] + '</li>');
$('.js-day-temp.day-selector' + i).html(Math.floor(data.currently.temperature) + '°');
相关文章:
- 循环遍历以数组为值的Javascript对象
- 如何遍历包含对象的数组-javascript
- JS.循环遍历多维数组,以计数元素在每列中的出现次数
- 根据PHP中数组的长度在Google Maps API中循环遍历标记
- 无法在javascript中循环遍历对象数组
- 如何使用jquery遍历具有动态添加元素的数组
- 我想遍历一个对象数组,我不想要任何重复项
- 一次循环遍历一组
- 在 jquery 中循环遍历 2 个数组并组合
- 如何遍历一组值对 JSON 对象
- meteor 遍历一组会话以检查值是否已更改
- 循环遍历 2 个数组 JavaScript
- 循环遍历一组元素 jQuery
- Ember循环遍历一组复选框并获取选中的项目
- Javascript遍历一组属性
- 如何循环遍历一组jQuery元素—一次4个
- 循环遍历一组名称,每隔一段时间采取操作
- 使用D3js循环遍历一组图像
- 在javascript中遍历一组对象,并从该函数返回true
- 我如何遍历一组JS对象并为每个对象打印语句