После запроса данных JSON я запускаю их через такую функцию
request.onload = function() {
var mainData = request.response;
loadNavbar(mainData);
}
function loadNavbar(jsonObj) {
length = jsonObj.catagories.length;
for (var i = 0 ; i < length; i++) {
list = document.createElement("li");
span = document.createElement("span");
itemName = mainData.catagories[i].catName;
span.innerHTML = itemName;
list.appendChild(span);
nav.appendChild(list);
console.log(i)
}
}
ошибка возврата веб-страницы:
main.js:21 Uncaught TypeError: Cannot read property 'length' of undefined
at loadNavbar (main.js:21)
at XMLHttpRequest.request.onload (main.js:12)
Но после того, как я изменил это на:
request.onload = function() {
var mainData = request.response;
loadNavbar();
}
function loadNavbar() {
length = mainData.catagories.length;
for (var i = 0 ; i < length; i++) {
list = document.createElement("li");
span = document.createElement("span");
itemName = mainData.catagories[i].catName;
span.innerHTML = itemName;
list.appendChild(span);
nav.appendChild(list);
console.log(i)
}
}
Это работает соответственно.
Могу ли я знать, что я делаю неправильно в первом фрагменте?