一尘不染

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

json

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

阅读 247

收藏
2020-07-27

共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/

编辑 将变量重命名为使其更容易理解什么。

2020-07-27