目前我在表格中显示各种天气参数,我也希望当天和后六天都在第一列。
我开始创建像这样的工作日:
// Make variables for every weekday
var d = new Date();
var weekday = new Array(7);
weekday[0] = "Sunday";
weekday[1] = "Monday";
weekday[2] = "Tuesday";
weekday[3] = "Wednesday";
weekday[4] = "Thursday";
weekday[5] = "Friday";
weekday[6] = "Saturday";
var today = d.getDay();
我的桌子看起来像这样。
$('#weakly-table').append('<tr><td>Day</td><td>Temperature</td> <td>Description</td> <td> Pressure </td> <td> Humidity </td> <td> Wind speed </td> </tr>')
$.each(weaklyWeather.list, function(index, weather) {
$('#weakly-table').append('<tr><td>' + weekday[today] + '</td><td>' + Math.round(weaklyWeather.list[index].temp.day) + '°C  </td> <td> <img src="http://openweathermap.org/img/w/'+ weaklyWeather.list[index].weather[0].icon+'"/>' + '</td> <td>' + Math.round(weaklyWeather.list[index].pressure) + ' Pa' + '</td><td>' + Math.round(weaklyWeather.list[index].humidity) + ' %' + '</td><td>' + Math.round(weaklyWeather.list[index].speed) + ' m/s' + '</td></tr>');
而不是在每一行的第一列中写下工作日[今天],我希望它是工作日[今天+ 1],工作日[今天+ 2]等等,但这只会给我第二天的每一行。
有什么建议吗?
答案 0 :(得分:3)
如果您只想迭代数组,则无需使用jQuery。正常的JavaScript for
循环就可以了。
for(var i=0;i<weekdays.length;i++){
console.log(weekdays[i]); //logs the i'th weekday
}
如果您想在特定的工作日开始,您可以
var today = 2; //Tuesday
var numDays = weekday.length;
for(var i=0;i<numDays;i++){
console.log(weekday[(i+today) % numDays]);
}
我们所做的是使用代表余数的modulus operator。如果您对它不熟悉,可以考虑一下时间。你在这里包装价值(星期几)(比如在时钟中)。