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+'">';
...
Ответы
Ответ 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/
изменить переименовали переменные, чтобы упростить понимание того, что есть.