2011-06-09 179 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