2011-06-09 135 views
18

我有一些实际困难试图解决一个jQuery $。每()迭代

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

[{"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(json, function(key) { 

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

    .... 

我不工作的第二个$。每()函数

 $.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+'">'; 
... 

回答

38

也为$.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/

编辑改名变量,使之更容易一点理解什么是什么。

+3

这是一件美丽的事情,就像一个魅力。我非常感谢你的回应,准确和易于实施,再次感谢 – 2011-06-09 20:41:51

+0

Dude thanx很多! – 2013-10-17 08:51:15