我有一个问题,从我的关联数组中检索数据。IE 7不支持关联数组?
需要明确的是,这是我的代码是:
var modelTable = {};
然后我保存的东西对象:
//inside getJSON-call:
$.each(data.Models, function (index, val) {
modelTable[val.Name] = val;
});
在这种情况下,VAL只是一个JSON对象:
{
Models : [
{
Name: "4-stroke (EBE)",
ModelNumber: "VRE",
Engine: "125ccm"
}
]
}
但是当我尝试从我的modelTable
是这样的:
var model = modelTable["4-stroke (EBE)"];
的对象为空或未定义,根据IE的开发工具:
SCRIPT5007: Unable to get value of the property 'Name': object is null or undefined
编辑:大型代码片段:
它基本上是两个输入字段搜索(使用jQuery UI自动完成;不重要)。 第一个框用于选择摩托车品牌(品牌),然后第二个在选择品牌并包含该型号的名称时填充。 值(javascript .text()
)的第二个输入字段用于查找modelTable
中的所有特定数据,因为我需要这些数据来提交我的搜索表单。
$(function() {
if ($('#mc_search').length) {
init_mc_makes();
}
});
var modelTable = {};
function init_mc_makes() {
//populates the brand drop down list in jquery ui autocomplete
}
function init_mc_models() {
//populates the model drop down list in jquery ui autocomplete
//and iterates the json data to save associative data in modelTable
//calls submitSearch(name, brand)
}
function submitSearch(name, brand) {
var model = modelTable[name];
var chosenModelNumber = model.ModelNumber; //Unable to get value of the property 'ModelNumber': object is null or undefined
//submits form with data...
}
代码不足。很明显,当您尝试访问它时,'modelTable'不在范围内,因此您需要使它成为样本,但没有更大的片段,我们无法告诉您具体如何。 – Jon 2012-03-01 10:40:43
你的意思是'data'具有那个JSON值吧?不'val' – 2012-03-01 10:41:58
@Jon'modelTable'在顶层作用域中声明(不在dom-ready中)。然后我会添加更多的代码。 – KristianB 2012-03-01 11:01:23