Javascript jQuery:如何在循环中追加数组项?
我正在尝试为网站创建天气预报页面 我正在使用OpenWeatherMap检索JSON数据 我想从JSON循环遍历“weather”数组,它包含保存天气信息的对象 这是使用console.log后控制台中显示的JSON(可读性屏幕截图): 以下是我的jQuery/JavaScript:Javascript jQuery:如何在循环中追加数组项?,javascript,jquery,json,Javascript,Jquery,Json,我正在尝试为网站创建天气预报页面 我正在使用OpenWeatherMap检索JSON数据 我想从JSON循环遍历“weather”数组,它包含保存天气信息的对象 这是使用console.log后控制台中显示的JSON(可读性屏幕截图): 以下是我的jQuery/JavaScript: $.getJSON("https://api.openweathermap.org/data/2.5/weather?lat=57.995221&lon=-6.761395&units=metri
$.getJSON("https://api.openweathermap.org/data/2.5/weather?lat=57.995221&lon=-6.761395&units=metric&APPID=myAPIkey", function(data){
var currWeather = [data.weather];
var len = currWeather.length;
for (i = 0; i > len; i++) {
$("#weather").append(currWeather[i].main);
$("#desc").append(currWeather[i].description);
}
var clouds = data.clouds.all;
$("#clouds").append(clouds);
var temp = data.main.temp;
$("#temp").append("Temperature: " + temp + "ยบC");
var humidity = data.main.humidity;
$("#humidity").append("Humidity: " + humidity + "%");
var pressure = data.main.pressure;
$("#pressure").append("Pressure: " + pressure);
console.log(data);
});
我的HTML:
<div id="weatherBox">
<h2>Current Weather</h2>
<div id="mainWeather">
<div id="temp"></div></td>
<div id="weather"></div>
<div id="desc"></div>
<div id="icon"></div>
</div>
<br>
<div id="clouds"></div>
<div id="humidity"></div></td>
<div id="pressure"></div></td>
</div>
只是想看看它是否有效。它没有。请尝试以下操作:
var currWeather = data.weather;
您试图将数据存储在错误的位置。请尝试以下操作:
var currWeather = data.weather;
您试图将数据存储在错误的位置。我发现您的代码有一些地方不正确
- 您可以使用点符号或括号符号访问属性,因此
或data.weather
非data[“weather”]
[data.weather]
- 您的for循环应该将
声明为var,并且应该是i
我发现您的代码有一些错误
- 您可以使用点符号或括号符号访问属性,因此
或data.weather
非data[“weather”]
[data.weather]
- for循环应该将
声明为var,并且应该是i
,下面是一个关于jsBin的工作示例: 基本上
应该是var currWeather = [data.weather];
var currWeather = data.weather;
及 应该是for (i = 0; i < len; i++) {
var currWeather = data.weather;
(i=0;ifor (i = 0; i < len; i++) {
{
我还在div中添加了一个段落,但这取决于您。这里是一个关于jsBin的工作示例: 基本上
应该是var currWeather = [data.weather];
var currWeather = data.weather;
及 应该是for (i = 0; i < len; i++) {
var currWeather = data.weather;
(i=0;ifor (i = 0; i < len; i++) {
{
我还在div中添加了一个段落,但这取决于您。我调整了您的文档,使其包含jQuery$(document).ready()函数,使用我在Github上为开放天气找到的API键。您可以从数据访问天气数组。weather,如下所示。您还错误地编写了循环,因为您需要var I小于长度,不大于长度。下面是您的代码工作示例$(文档).ready(函数(){ var myAPIkey='BD5E378503939DDAE76F12AD7A97608'; $.getJSON(“https://api.openweathermap.org/data/2.5/weather?lat=57.995221&lon=-6.761395&units=metric&APPID=“+myAPIkey,函数(数据){ var currWeather=data.weather; 对于(i=0;i
我将您的文档调整为包含jQuery$(document).ready()函数,使用我在Github上为开放天气找到的API键。您可以从数据访问天气数组。weather,如下所示。您还错误地编写了循环,因为您需要var I小于长度,不大于长度。下面是您的代码工作示例当前天气
$(文档).ready(函数(){ var myAPIkey='BD5E378503939DDAE76F12AD7A97608'; $.getJSON(“https://api.openweathermap.org/data/2.5/weather?lat=57.995221&lon=-6.761395&units=metric&APPID=“+myAPIkey,函数(数据){ var currWeather=data.weather; 对于(i=0;i
当前天气
不是一个对象看起来像data.weather已经是一个数组了,但是….data.main
-为什么要将它包装在另一个数组中?事实上,你甚至根本不需要currWeather,只要在data.weather上循环,直到你到达data.weather.length-1(提示-你也弄错了。我开始和0,因此永远不会大于数组的长度。如果是,它将不匹配任何数组元素。)啊,我明白了。我已经解决了,谢谢!var currWeather=[data.weather];
不是对象看起来像数据。weather已经是数组了,但是….data。main
-为什么要将其包装在另一个数组中?事实上,您根本不需要currWeather,只需在data.weather上循环,直到到达data.weather.length-1(提示-你也搞错了。我开始和0,所以永远不会大于数组的长度。如果是,它将不匹配任何数组元素。)啊,我明白了。我已经解决了,谢谢!var currWeather=[data.weather];
- 您可以使用点符号或括号符号访问属性,因此