В обратном вызове JQuery AJAX я хочу перебрать результаты объекта. Это пример того, как выглядит ответ в Firebug.
[
{"TEST1":45,"TEST2":23,"TEST3":"DATA1"},
{"TEST1":46,"TEST2":24,"TEST3":"DATA2"},
{"TEST1":47,"TEST2":25,"TEST3":"DATA3"}
]
Как я могу зациклить результаты, чтобы у меня был доступ к каждому из элементов? Я пробовал что-то вроде ниже, но это не похоже на работу.
jQuery.each(data, function(index, itemData) {
// itemData.TEST1
// itemData.TEST2
// itemData.TEST3
});
Ответы:
Вы можете удалить внешний цикл и заменить
this
наdata.data
:Вы были близки
У вас есть массив объектов / карт, поэтому внешний цикл выполняет итерации по ним. Внутренний цикл перебирает свойства каждого элемента объекта.
источник
$(data)
вместоdata
, иначе переменнаяk
всегда возвращает 0.Вы также можете использовать функцию getJSON :
Это действительно просто перефразировка ответа ifesdjeen, но я подумал, что это может быть полезно для людей.
источник
Если вы используете Fire Fox, просто откройте консоль (используйте клавишу F12) и попробуйте это:
Надеюсь, поможет
источник
Для всех, кто застрял с этим, это, вероятно, не работает, потому что вызов ajax интерпретирует ваши возвращенные данные как текст - т.е. это еще не объект JSON.
Вы можете преобразовать его в объект JSON, вручную используя команду parseJSON или просто добавив свойство dataType: 'json' к вашему вызову ajax. например
источник
Uncaught TypeError: Cannot use 'in' operator to search for '188' in
получить эту ошибку.Получите доступ к массиву json, как к любому другому массиву.
источник
[0]
, следующий[1]
и так далее.Вот что я придумал, чтобы легко просмотреть все значения данных:
источник
Попробуйте функцию jQuery.map , довольно хорошо работает с картами.
источник
если вы не хотите оповещения, то есть вы хотите HTML, то сделайте это
ПРИМЕЧАНИЕ: используйте «append», а не «html», иначе последний результат - это то, что вы увидите в html-представлении.
тогда ваш HTML-код должен выглядеть следующим образом
Вы также можете стилизовать (добавить класс) div в jquery, прежде чем он отобразится как html
источник
Если вы используете короткий метод функции вызова jjuery ajax, как показано ниже, возвращаемые данные должны быть интерпретированы как объект json, чтобы вы могли проходить по ним.
источник
Я неравнодушен к функции стрелки ES2015 для поиска значений в массиве
Оформить заказ Array.prototype.find () ЗДЕСЬ
источник
$each
будет работать .. Другой вариант - JQuery Ajax Callback для результата массиваисточник
Я использую .map для foreach. Например
источник