完成从JSON中提取数据,但在循环中尝试从子元素(即:子项1,2等)中提取其他信息时遇到问题。
{
"title": "Main Title",
"items": [
{
"title": "Sub Title 1 "
},
{
"title": "Sub Title 2",
"items": [
{
"title": "Sub Item 1" //CAN'T GET MY HANDS ON THESE ITEMS!!!!!
},
{
"title": "Sub Item 2"
}
]
},
{
"title": "Sub Title 3",
"items": [
{
"title": "Sub Item 1"
},
{
"title": "Sub Item 2"
}
]
},
{
"title": "Sub Title 4 "
}
]
}
这是我试图将“SubItems”拉入已经创建的li中的另一个ul。
var addItemsLi = function(itemsLi){
itemsLi.each(function(itemLi){
var el = new Element('li'),
name = new Element('a', {'html': itemLi.title}).inject(el);
if (itemLi.items){
var ul = new Element('ul'),
li = new Element('li').inject(ul),
subItem = new Element('a', {'html': itemLi.items.title}).inject(li);
};
el.inject(gallery);
});
};
答案 0 :(得分:2)
这是一个工作小提琴:http://jsfiddle.net/maniator/VVAFM/11/
你忘了循环遍历items数组:
var addItemsLi = function(itemsLi) {
itemsLi.each(function(itemLi) {
var el = new Element('li'),
name = new Element('a', {
'html': itemLi.title
}).inject(el);
if (itemLi.items) {
var ul = new Element('ul').inject(el)
for(var i = 0; i < itemLi.items.length; i++){
var li = new Element('li').inject(ul);
subItem = new Element('a', {
'html': itemLi.items[i].title
}).inject(li);
}
};
el.inject(gallery);
});
};
答案 1 :(得分:1)
您还需要遍历子项,尝试:
var addItemsLi = function(itemsLi){
itemsLi.each(function(itemLi){
var el = new Element('li'),
name = new Element('a', {'html': itemLi.title}).inject(el);
if (itemLi.items){
var ul = new Element('ul');
itemLi.items.each(function(item){
var li = new Element('li').inject(ul),
subItem = new Element('a', {'html': item.title}).inject(li);
});
};
el.inject(gallery);
});
};