我有这个JS:
function climat(code, isday, hour){
weather = {'113': (isday == "yes" && hour < 4) ? '<i class="sunn"></i>' : '<i class="moonn"></i>' }
return weather[code]
};
function Meteo(d) {
for (h = 1; h < 4; h++) {
alert(climat(meteo[d].hourly[h].weatherCode, meteo[d].hourly[h].isdaytime, h));
$("#meteo"+h).html(climat(meteo[d].hourly[h].weatherCode, meteo[d].hourly[h].isdaytime), h)
}
};
现在,我没有得到它应该得到的东西,我用alert()
而且天线还可以,所以会发生什么?
以下是来自控制台的测试:
meteo = JSON.parse(localStorage.getItem('meteo')).data.weather
[Object, Object, Object, Object, Object]
climat(meteo[3].hourly[2].weatherCode, meteo[3].hourly[2].isdaytime, 5)
"<i class="moonn"></i>"
climat(meteo[3].hourly[2].weatherCode, meteo[3].hourly[2].isdaytime, 4)
"<i class="moonn"></i>"
climat(meteo[3].hourly[2].weatherCode, meteo[3].hourly[2].isdaytime, 3)
"<i class="sunn"></i>"
以下是截图,名为sunn
的类,但它呈现moonn
:
答案 0 :(得分:2)
这一行:
$("#meteo"+h).html(climat(meteo[d].hourly[h].weatherCode, meteo[d].hourly[h].isdaytime), h);
应该是:
$("#meteo"+h).html(climat(meteo[d].hourly[h].weatherCode, meteo[d].hourly[h].isdaytime, h));
你有h
作为.html()
的第二个参数,而不是climat()
的第三个参数。因此,在发出警报时,您在调用climat()
时的方式与添加HTML时的方式不同。
答案 1 :(得分:1)
在第二次拨打climat
时,您只传递一个参数,在第一次通话中,您传递了两个参数。在第二次调用h
被传递给html
函数,因为这个函数只需要零或一个参数,我认为这是错误。
for (h = 1; h < 4; h++) {
alert(climat(meteo[d].hourly[h].weatherCode, meteo[d].hourly[h].isdaytime, h));
$("#meteo"+h).html(
climat(meteo[d].hourly[h].weatherCode, meteo[d].hourly[h].isdaytime),
h)
}