2014-04-28 48 views
0

我希望对象元素下面的提醒“的Game1”,然后“游戏2”,但它警告没有

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); 
}); 

编辑:更新,以使问题更清晰的

+2

'pages'是一个数组。它包含一个元素,一个对象。该对象具有'menuMain'属性。 –

回答

1

你遍历pages这是字典的数组,请尝试:

alert(page.menuMain.pageTitle); 
+0

我不认为这会起作用。让我更新 – totalitarian

0

的问题是,你只打你的对象的顶级元素。

阿尔特如下,你会得到你所期望的:

$.each(pages.menuMain, function(id, page) { 
      alert(page.pageTitle); 
     }); 
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); 
     } 
    } 
}); 
+0

但我不知道mainMenu存在,因为它是从远程服务器分析的 – totalitarian

+0

您是否可以控制对象在服务器上的结构?你也写服务器端吗? –

+0

是的,我也控制了服务器端代码 – totalitarian