首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery $.each()没有遍历所有对象

问Jquery $.each()没有遍历所有对象
EN

Stack Overflow用户
提问于 2015-04-08 21:31:56
回答 1查看 434关注 0票数 0

我正在尝试通过api遍历在json中返回的所有对象。下面是我的代码:

代码语言:javascript
复制
$(document).ready(function() {
     $('.form-container').submit(function() {

          var $body = $('body');
          var $greeting = $('#greeting');

          // load streetview
          var streetname = $("#street").val();
          var cityname = $("#city").val();
          var address = streetname + ', ' + cityname;

          var bigImgUrl = "https://maps.googleapis.com/maps/api/streetview?size=600x400&location="+ address +'';

          $greeting.text("So you want to live at " + address + "?");

          $body.append('<img class="bgimg" src='+bigImgUrl+'>');

          // NYTimes AJAX request
          var nytUrl = "http://api.nytimes.com/svc/search/v2/articlesearch.json?q="+cityname+"&sort=newest&api-key=####";

          $.getJSON(nytUrl, function(data) {

              createStructure(data); // Call to recursive function

          });
          return false;
     });

    var createStructure = function (data)
    {
        $.each(data, function(key, value) {
            if (typeof value === 'object')
            {
                 alert(key + ": " + value);
                 createStructure(data[key]);
            }
            else 
            {
                 alert(key + ": " + value);
            }
        });

    };

    return false;
});

但是,它不会遍历所有这些元素。下面的截图描述了API返回的json的一部分:

​

​

代码显示了只输入response、所有meta(包括子元素)、输入docs和0对象(只有一些子元素)的警报。它跳过docs和其他外部对象的所有剩余子对象。

下面是指向json:JSON的链接

EN

回答 1

Stack Overflow用户

发布于 2015-04-08 22:03:26

使用for in循环而不是$.each

代码语言:javascript
复制
var createStructure = function (data) {
    for (var key in data){
        var value = data[key];
        if (typeof value === 'object') {
            console.log(key + ": " + value);
            createStructure(value);
        } else {
            console.log(key + ": " + value);
        }
    }
};

JSFiddle: http://jsfiddle.net/TrueBlueAussie/q4vuc789/1

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29516114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档