Heim  >  Artikel  >  Web-Frontend  >  JQuery $.each durchläuft das JavaScript-Array-Objekt „instances_jquery“.

JQuery $.each durchläuft das JavaScript-Array-Objekt „instances_jquery“.

WBOY
WBOYOriginal
2016-05-16 16:38:201247Durchsuche

Sehen Sie sich ein einfaches jQuery-Beispiel an, um über ein JavaScript-Array-Objekt zu iterieren.

var json = [
{"id":"1","tagName":"apple"},
{"id":"2","tagName":"orange"},
{"id":"3","tagName":"banana"},
{"id":"4","tagName":"watermelon"},
{"id":"5","tagName":"pineapple"}
];

$.each(json, function(idx, obj) {
alert(obj.tagName);
});

Das obige Code-Snippet funktioniert einwandfrei und fordert wie erwartet „Apfel“, „Orange“ usw. auf.
Problem: JSON-Zeichenfolge

Im folgenden Beispiel wird eine JSON-Zeichenfolge (in einfache oder doppelte Anführungszeichen eingeschlossen) direkt deklariert.

var json = '[{"id":"1","tagName":"apple"},{"id":"2","tagName":"orange"},
{"id":"3","tagName":"banana"},{"id":"4","tagName":"watermelon"},
{"id":"5","tagName":"pineapple"}]';

$.each(json, function(idx, obj) {
alert(obj.tagName);
});

In Chrome wird in der Konsole der folgende Fehler angezeigt:

Unabgefangener Typfehler: Der „in“-Operator kann nicht für die Suche nach „156“ verwendet werden
in [{"id": "1", "tagName": "apple"}...

Lösung: JSON-String in JavaScript-Objekt konvertieren.
Um das Problem zu beheben, konvertieren Sie es über Standard JSON.parse() oder $.parseJSON von jQuery in ein JavaScript-Objekt.

var json = '[{"id":"1","tagName":"apple"},{"id":"2","tagName":"orange"},
{"id":"3","tagName":"banana"},{"id":"4","tagName":"watermelon"},
{"id":"5","tagName":"pineapple"}]';

$.each(JSON.parse(json), function(idx, obj) {
alert(obj.tagName);
});

//or 

$.each($.parseJSON(json), function(idx, obj) {
alert(obj.tagName);
});
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn