#javascript #json #internet-explorer #object
#javascript #json #internet-explorer #объект
Вопрос:
В FireFox и Chrome я могу ссылаться на значения объектов как таковые:
key = value[0].name
Но это приводит к ошибке в IE 8, когда «значение[0].name» равно нулю.
Есть идеи, почему это происходит?
Полный код:
$.each(data, function(key, value){
key = value[0].name.replace(' ', '');
var original = $('.' key 'Link').attr('href');
var updated = original 'amp;browseItem=' (this[0]).id;
$('.' key 'Link').attr('href', updated);
});
и идентификатор «data» объекта, производного от строки JSON:
[[{"name": "Due", "id": 9}], [{"name": "Fine", "id": 10}], [{"name": "Property Lien", "id": 11}]]
Редактировать:
Похоже, что это была проблема с кэшированием. Спасибо за все ответы.
Комментарии:
1. Уверены ли вы, что объект «данные» выглядит именно так? Если бы это было так, этот код отлично работал бы в IE8.
2. Что
alert(JSON.stringify(value))
отображается в IE8?3. У меня работает в IE8. Проверьте: jsfiddle.net/4GxGG/1
4. Еще раз спасибо за все ответы.
Ответ №1:
Попробуйте:
key = (value[0] || value).name.replace(' ', '');
Похоже, value
это уже тот элемент массива, который вам нужен