Ich versuche, Skript zu schreiben, um Objekt durchzulaufen und zurückzugeben, welcher Typ gleich dem benutzerdefinierten Datentyp ist, der in HTML festgelegt wird. Aber ich bin nicht in der Lage, Variable mit einem Array von Objekten an meine for-Schleife übergeben. Kannst du mir bitte sagen, was mache ich falsch in diesem Code? Ich erhalte:Kann keine Variable mit JSON-Objekten an For-Schleife übergeben
nicht Eigenschaft 'Länge' undefinierter
PS lesen kann. Es hat sich in rohen JavaScript, kein jQuery
var btn = document.getElementById("btn");
var przepisy;
function findData(data) {
var kuchnia = data.dataset.type;
var myRequest = new XMLHttpRequest();
myRequest.onreadystatechange = function() {
if (this.readyState === 4 && this.status == 200) {
przepisy = JSON.parse(myRequest.responseText);
}
};
myRequest.open('GET', 'js/przepisy.json');
myRequest.send();
for (i = 0; i < przepisy.length; i++) {
var results = "";
var obj = przepisy[i];
var type = przepisy.type;
if (type === kuchnia) {
results += obj.name;
document.write(results);
}
}
}
Scheint wie 'przepisy' wird nicht richtig initialisiert. Können Sie das verifizieren? – 31piy
Sie versuchen, auf die Ergebnisse eines asynchronen Vorgangs zuzugreifen, bevor dieser abgeschlossen wurde. – Pointy
Fügen Sie zuerst Ihre Schleife in die Erfolgsrückruffunktion ein, damit ein Objekt angezeigt werden kann. Zweitens: 'przepisy = JSON.parse (myRequest.responseText);' sollte ein Objekt und kein Array zurückgeben. Um herauszufinden, wie viele Eigenschaften sich im Objekt befinden, verwenden Sie 'Object.keys (przepisy) .length'. Oder wenn Sie wirklich versuchen, ein Array zu bekommen. Sie müssen sich das Objekt in einer seiner Eigenschaften ansehen, in der das gesuchte Array gespeichert ist. –