我嘗試編寫腳本來遍歷對象,並返回那些類型等於HTML中設置的自定義數據類型的腳本。然而,即時通訊無法將變量與對象數組傳遞給我的for循環。你能告訴我在這段代碼中我做錯了什麼嗎?我收到:無法將帶有JSON對象的變量傳遞給循環
無法讀取未定義
PS的特性 '長度'。它在原始的JavaScript來完成,沒有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);
}
}
}
似乎像'przepisy'沒有正確初始化。你能證實嗎? – 31piy
您正試圖在完成之前訪問異步操作的結果。 – Pointy
首先,將您的循環包含在成功回調函數中,以便有一個對象可以查看。第二:'przepisy = JSON.parse(myRequest.responseText);'應該返回一個Object,而不是一個數組。要找出對象中有多少個屬性,使用'Object.keys(przepisy).length'。或者,如果你真的想要獲得一個數組。您需要查看存儲您所尋找的數組的其中一個屬性的對象。 –