jquery getJSON我可以在键的位置使用变量吗?

时间:2014-11-18 01:44:09

标签: jquery ajax json variables

我的功能是测试页面是否在包含下拉菜单的页面列表中。如果是,请加载一组html,如果没有,则加载另一组。

如果它有一个菜单,我想迭代一组JSON数据并创建菜单项。我还没有开始迭代部分(我可以做)。问题是,我想使用变量来提取各种数据集。

所以this_menu获取页面一部分的类,拆分它们,并将第二个类作为变量。 (我添加了replace(),因为破折号导致了问题)。

后来,我尝试在对象中使用变量,但显然这不起作用。

所以,现在this_menu = danube_rhapsody

jq('.vacations').attr('class',function() {
  var this_menu = jq(this).attr('class').split(' '),
    this_menu = this_menu[1].replace('-','_');
    has_menu = ['danube_rhapsody','danube_waltz','blue_danube'];

  if (jq.inArray(this_menu,has_menu) != -1) {
    jq('aside.call-to-action').load('call-to-action-menu.html', function() {
      load_and_send();
    });
    jq.getJSON('menu-data.js',function(data) {
      var test = data.menus.this_menu;
      console.log(test);
    });
  } else {
    jq('aside.call-to-action').load('call-to-action-NO-menu.html');
  }
});

测试数据就在这里。

{
  "menus": {
    "danube_rhapsody" : {
      "1" : {
        "url" : "/cruises/cruise-package-RFERC3PK?packageid=RFERC3PK",
        "title" : "10-night Eastern Mediterranean cruise, October 2, 2015"
      }
    }
  }
}

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

好的,这个问题的答案是将变量包装在方括号中。

var test = data.menus[this_menu];

返回正确的数据。