Javascript jQuery:如何在循环中追加数组项?

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

我正在尝试为网站创建天气预报页面

我正在使用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=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循环应该将
    i
    声明为var,并且应该是
    我发现您的代码有一些错误

    • 您可以使用点符号或括号符号访问属性,因此
      data.weather
      data[“weather”]
      [data.weather]

    • for循环应该将
      i
      声明为var,并且应该是
      ,下面是一个关于jsBin的工作示例:

      基本上

      var currWeather = [data.weather];
      
      应该是

      var currWeather = data.weather;
      
      for (i = 0; i < len; i++) {
      

      应该是

      var currWeather = data.weather;
      
      for (i = 0; i < len; i++) {
      
      (i=0;i{

      我还在div中添加了一个段落,但这取决于您。

      这里是一个关于jsBin的工作示例:

      基本上

      var currWeather = [data.weather];
      
      应该是

      var currWeather = data.weather;
      
      for (i = 0; i < len; i++) {
      

      应该是

      var currWeather = data.weather;
      
      for (i = 0; i < len; i++) {
      
      (i=0;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.main
    不是一个对象看起来像data.weather已经是一个数组了,但是….
    var currWeather=[data.weather];
    -为什么要将它包装在另一个数组中?事实上,你甚至根本不需要currWeather,只要在data.weather上循环,直到你到达data.weather.length-1(提示-你也弄错了。我开始和0,因此永远不会大于数组的长度。如果是,它将不匹配任何数组元素。)啊,我明白了。我已经解决了,谢谢!
    data。main
    不是对象看起来像数据。weather已经是数组了,但是….
    var currWeather=[data.weather];
    -为什么要将其包装在另一个数组中?事实上,您根本不需要currWeather,只需在data.weather上循环,直到到达data.weather.length-1(提示-你也搞错了。我开始和0,所以永远不会大于数组的长度。如果是,它将不匹配任何数组元素。)啊,我明白了。我已经解决了,谢谢!