首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JQuery $.each() JSON数组对象迭代

JQuery $.each() JSON数组对象迭代
EN

Stack Overflow用户
提问于 2011-06-10 04:06:15
回答 1查看 104.2K关注 0票数 19

我在尝试解决JQuery $.each()迭代时遇到了一些真正的困难

这是我的数组,为了方便起见,限制了结果

[{"GROUP_ID":"143",
  "GROUP_TYPE":"2011 Season",
  "EVENTS":[
    {"EVENT_ID":"374","SHORT_DESC":"Wake Forest"},
    {"EVENT_ID":"376","SHORT_DESC":"Yale"},
    {"EVENT_ID":"377","SHORT_DESC":"Michigan State"}]
 },
 {"GROUP_ID":"142",
  "GROUP_TYPE":"2010 Season",
  "EVENTS":[
    {"EVENT_ID":"370","SHORT_DESC":"Duke"},
    {"EVENT_ID":"371","SHORT_DESC":"Northwestern"},
    {"EVENT_ID":"372","SHORT_DESC":"Brown"}]
}]

我的第一个$.each迭代运行得很好,但是"EVENTS“的子迭代是我遇到问题的地方

我的第一个$.each()函数

     $.each(json, function(key) {

            html = '<a href="'+json[key].GROUP_ID+'">';

     ....

我没有工作的第二个$.each()函数

     $.each(json.EVENTS, function(key) {
    newHTML += '<p>'+json.EVENTS[key].SHORT_DESC+'</p>';


     ...

我(粗略地)理解这不是一个单独的JSON对象,而是一个JSON对象数组,但不理解第一个版本是否可以工作,为什么第二个版本不行

一旦我理解了这是$.each()中的一个$.each(),我就知道下面的代码不能工作,而且很可能是愚蠢的,但我想要实现的最终结果是:遍历父级,然后逐个父级迭代。

$.each(json, function(key) {

            html = '<a href="'+json[key].GROUP_ID+'">';

     $.each(json[key].EVENTS, function(subkey) {

            html = '<a href="'+json[key]EVENTS[subkey].SHORT_DESC+'">';
 ...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-10 04:10:23

也将第二个变量赋值给$.each function(),这样会更容易,因为它将为您提供数据(这样您就不必处理索引了)。

$.each(json, function(arrayID,group) {
            console.log('<a href="'+group.GROUP_ID+'">');
    $.each(group.EVENTS, function(eventID,eventData) {
            console.log('<p>'+eventData.SHORT_DESC+'</p>');
     });
});

应该打印出你在问题中尝试的所有内容。

http://jsfiddle.net/niklasvh/hZsQS/

edit重命名了变量,使其更容易理解什么是什么。

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

https://stackoverflow.com/questions/6298599

复制
相关文章

相似问题

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