Использование атрибута id для обработки данных JSON в jQuery - PullRequest
0 голосов
/ 19 апреля 2011

Я имею дело с несколькими динамически обновляемыми полями выбора, очень похожими на автоматический веб-сайт, который динамически обновляет марку, модель и т. Д. В начале своего сценария я идентифицирую меняющийся выбор, затем идентифицирую следующий выбор и извлекаю его идентификатор со страницы, кактак:

var next_select_id = $(next_select).attr('id');

Я называю это next_select_id, потому что идентификатор HTML любого данного выбора соответствует типу родительского объекта в ответе JSON.

В случае двух выборов сИдентификаторы «A» и «B», при изменении A, next_select_id должны быть «B».Это работает позже на странице, где я генерирую URL путем объединения next_select_id со строками (например, он генерирует http://testing.com/users/B просто отлично).

Позже, когда я попытаюсь обработать файл JSON с родительским ключом на основе next_select_id, содержащий имена и значения идентификаторов, следующим образом:

$.each(data, function(i, j){  
  row = "<option value=\"" + j.next_select_id.id + "\">" + j.next_select_id.name + "</option>";  
  $(row).appendTo(next_select);                     
});

j.something.id в данном случае соответствуетк идентификатору объекта ActiveRecord.

Он говорит: «Невозможно прочитать свойство 'id' из неопределенного".Нужно ли каким-то образом преобразовывать next_select_id, прежде чем пытаться это сделать?Спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 19 апреля 2011

Кажется, я был немного озадачен правильным способом использования моей строки, назначенной переменной.В конце исправление было простым обозначением:

j[next_select_id]["name"]
0 голосов
/ 19 апреля 2011

Похоже, вы уже установили next_select_id в строку идентификатора.Просто удалите ваш лишний .id из этого $ .each, и он должен работать.(Если нет, опубликуйте код, в котором вы установили next_select_id для $ .each.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...