我希望以下内容提醒“游戏1'然后' game2'但它没有提醒任何事情
var pages = [{
"menuMain": {
"pageTitle": "game1",
"leftButtonText": "back",
"leftButtonHREF": "#mainPage",
"rightButtonText": "Close",
"rightButtonHREF": "#mainPage"
},
"subMenu": {
"pageTitle": "game2",
"leftButtonText": "back",
"leftButtonHREF": "#mainPage",
"rightButtonText": "Close",
"rightButtonHREF": "#mainPage"
}
}]
$.each(pages, function (id, page) {
alert(page.pageTitle);
});
编辑:更新以使问题更清晰
答案 0 :(得分:1)
您正在迭代pages
这是一个dict数组,请尝试:
alert(page.menuMain.pageTitle);
答案 1 :(得分:0)
问题是你只是在击中对象的顶级元素。
如下所示,您将得到您期望的结果:
$.each(pages.menuMain, function(id, page) {
alert(page.pageTitle);
});
答案 2 :(得分:0)
回调函数中的page
参数是数组的直接成员,在您的情况下为{"menuMain":{..}} object
。
所以你应该这样做:
$.each(pages, function(id, page) {
alert(page.menuMain.pageTitle);
});
修改强>
如果您事先不知道这些属性,这可能是正确的方法:
$.each(pages, function(id, page) {
for(var pageSection in page) {
if(page.hasOwnProperty(pageSection)) {
//This block will loop for every
//top-level property in your members
//This will alert "menuMain" or "subMenu"
alert(pageSection);
//This will alert "game1" or "game2"
alert(page[pageSection].pageTitle);
}
}
});