Подтвердить что ты не робот

JQuery $.each() Иерархия объектов массива JSON

У меня возникают некоторые реальные трудности с попыткой решить JQuery $.each() iteration

Это мой массив, ограничивающий результаты для удобства

[{"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 работает очень хорошо, но вспомогательная итерация для "СОБЫТИЙ" - это то, где у меня возникают проблемы.

Моя первая функция $.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(), я знаю, что код ниже не работает и, скорее всего, идиотский, но дает представление о том, что im пытается достичь: итерации через родителя, затем дочернего по родительскому

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

Ответ 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/

изменить переименовали переменные, чтобы упростить понимание того, что есть.