我正在使用forecast.io api,也会为仪表板上显示的3个城市创建一个小循环。使用html data-attribute
值,将其注入我的JS循环以获取城市的名称。然后循环运行3次以输出当前天气。
该属性以字符串形式出现,然后我有3个变量名称与保存lat / long值的字符串相同。
我的问题是,如何将我从HTML中提取的字符串与定义了选项的对象相连接?一旦字符串在函数中,我希望这些值在API调用中可引用。
这是我的代码:
$('[data-weather]').each(function(){
var cityName = $(this).data('weather');
var key = 'MY_KEY';
var elem = this;
var melbourne = {lat:-37.975478,long:145.094574};
var hongkong = {lat:22.282826,long:114.154744};
var singapore = {lat:1.287172,long:103.860807};
$.ajax({
url: "https://api.forecast.io/forecast/"+key+"/"+cityName.lat+","+cityName.long,
dataType: "jsonp",
success: function( data ) {
console.log( data.currently.temperature );
var temp = data.currently.temperature;
console.log( data.currently.summary );
var weather = data.currently.summary;
$(elem).html(weather+' / '+temp+'°');
}
});
})
}
我假设cityName
中的字符串然后在循环的每个循环中引用定义的对象,然后允许将lat和long放入url中。此刻,字符串直接进入。我应该创建一个新对象,并在每次循环时推送变量值吗?