【问题标题】:JQuery $.each() JSON array object iterationJQuery $.each() JSON 数组对象迭代
【发布时间】:2011-09-12 00:27:43
【问题描述】:

我在尝试解决 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+'">';
 ...

【问题讨论】:

    标签: jquery json each


    【解决方案1】:

    也为$.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重命名变量,以便更容易理解是什么。

    【讨论】:

    • 这是一件美丽的事情,就像一个魅力。非常感谢您的回复,准确且易于实施,再次感谢
    猜你喜欢
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 2010-12-14
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多