У меня проблема с получением данных из моего ассоциативного массива.
Для ясности, это мой код:
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; не важно). Поле First , используется для выбора марки мотоцикла (марки), затем поле second заполняется при выборе марки и содержит название модели. Значение (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...
}