W wywołaniu zwrotnym sukcesu jQuery AJAX chcę zapętlić wyniki obiektu. To jest przykład tego, jak wygląda odpowiedź w Firebug.
[
{"TEST1":45,"TEST2":23,"TEST3":"DATA1"},
{"TEST1":46,"TEST2":24,"TEST3":"DATA2"},
{"TEST1":47,"TEST2":25,"TEST3":"DATA3"}
]
Jak mogę zapętlić wyniki, aby mieć dostęp do każdego z elementów? Próbowałem czegoś takiego jak poniżej, ale to nie działa.
jQuery.each(data, function(index, itemData) {
// itemData.TEST1
// itemData.TEST2
// itemData.TEST3
});
Odpowiedzi:
możesz zdjąć zewnętrzną pętlę i zastąpić
this
jądata.data
:Byłeś blisko:
Masz tablicę obiektów / map, więc zewnętrzna pętla przechodzi nad nimi. Pętla wewnętrzna wykonuje iterację po właściwościach każdego elementu obiektu.
źródło
$(data)
zamiastdata
, w przeciwnym razie zmiennak
zawsze zwraca 0.Możesz także użyć funkcji getJSON :
To naprawdę jest tylko przeformułowanie odpowiedzi ifesdjeen, ale pomyślałem, że może to być pomocne dla ludzi.
źródło
Jeśli używasz Fire Fox, po prostu otwórz konsolę (użyj klawisza F12) i wypróbuj to:
mam nadzieję, że to pomoże
źródło
Dla każdego, kto utknął z tym, prawdopodobnie nie działa, ponieważ wywołanie AJAX interpretuje zwrócone dane jako tekst - tj. Nie jest to jeszcze obiekt JSON.
Możesz przekonwertować go na obiekt JSON, ręcznie używając polecenia parseJSON lub po prostu dodając właściwość dataType: 'json' do wywołania ajax. na przykład
źródło
Uncaught TypeError: Cannot use 'in' operator to search for '188' in
otrzymuję ten błąd.Uzyskaj dostęp do tablicy json tak, jak do każdej innej tablicy.
źródło
[0]
, następny[1]
i tak dalej.Oto, co wymyśliłem, aby łatwo wyświetlić wszystkie wartości danych:
źródło
Wypróbuj funkcję jQuery.map , działa całkiem dobrze z mapami.
źródło
jeśli nie chcesz alertów, czyli html, zrób to
UWAGA: użyj opcji „dołącz”, a nie „html”, w przeciwnym razie ostatni wynik będzie tym, co zobaczysz w widoku HTML
wtedy twój kod HTML powinien wyglądać tak
Możesz także stylizować (dodać klasę) element div w jquery, zanim zostanie wyrenderowany jako html
źródło
Jeśli korzystasz z krótkiej metody funkcji wywołania jQuery ajax, jak pokazano poniżej, zwrócone dane muszą być interpretowane jako obiekt json, abyś mógł przejść przez pętlę.
źródło
Jestem stronniczy w funkcji strzałki ES2015 do znajdowania wartości w tablicy
Checkout Array.prototype.find () TUTAJ
źródło
$each
zadziała .. Inną opcją jest wywołanie zwrotne jQuery Ajax dla wyniku tablicyźródło
Używam .map dla foreach. Na przykład
źródło