Я получаю список из веб-метода C# с помощью ajax (код ниже), список возвращается в порядке, но после того, как метод успеха завершен, он дает мне ошибку - (Can not read property 'length' of undefined) в jquery (снимок экрана ниже)Невозможно прочитать свойство «длина» неопределенного jquery
Я что-то не хватает ???
function getMainParentMenus() {
$.ajax({
type: "POST",
url: "/Mainpage.aspx/getLeftMainNavParentMenus",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg.d);
parentMenuss = msg.d;
}, //It goes to the screenshot below after this bracket
error: function (error) {
alert("An error has occured while fetching the Left Nav Parent Menus");
}
});
};
Описанный выше метод вызывается описанным ниже методом.
var parentMenuss;
var listOfSubMenus;
function bindLeftNavMenu() {
// var parentMenus = getMainParentMenus();
getMainParentMenus();
var html = "<div id='accordian'> ddd";
$.each(parentMenuss, function() {
html += " <h3 class='accordianHeader' href='" + this['URL'] + "'>" + this['Title'] + "</h3> ";
alert("okK");
$.each(listOfSubMenus, function() {
html += "<div class='accordianContent'><a href='" + this['URL'] + "'>" + this['Title'] + "</a>";
});
});
html += "</div>";
$("#leftNavigationMenu").append(html);
};
РЕДАКТИРОВАТЬ:
данные в боевой готовности в первом блоке кода выше отображается как так
и в хром отладчик:
Похоже, что вы имеете асинхронный вопрос (я, е, 'parentMenuss' не определен, когда' $ .each' называется), что делает данные выглядеть который возвращается из вызова ajax? – fbynite
Или другой способ: 'parentMenuss' * не установлен * до тех пор, пока не произойдет обратный вызов успеха XHR. Убедитесь, что код, который использует 'parentMenuss', выполняется * после * (т. Е. Изнутри или отклика) на обратный вызов успеха XHR. – user2864740
'parentMenuss === undefined' и' $ .each (undefined, function() {...}) 'не будет работать. –