我在尝试解决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+'">'; ...
同时为分配第二个变量,$.each function()因为它会为您提供数据,因此变得更加容易(因此您不必使用索引)。
$.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/
编辑 将变量重命名为使其更容易理解什么。