使用jQuery循环在html表中显示工作日

时间:2013-05-17 13:25:08

标签: jquery html each weekday

目前我在表格中显示各种天气参数,我也希望当天和后六天都在第一列。

我开始创建像这样的工作日:

// 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) + '&#176C  &nbsp</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]等等,但这只会给我第二天的每一行。

有什么建议吗?

1 个答案:

答案 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]); 
}

Fiddle

Fiddle starting with today

我们所做的是使用代表余数的modulus operator。如果您对它不熟悉,可以考虑一下时间。你在这里包装价值(星期几)(比如在时钟中)。