Javascript 在json对象上使用$.each语句时,我会得到一个错误
在json对象上使用$.each语句时,我会得到一个“UncaughtTypeError:Cannotreadproperty”length“of undefined”。我知道我的$。每条语句都会导致它,因为当我对它进行注释时,console.log会按预期返回[Object,Object,Object]。我要做的是遍历对象并返回title的值Javascript 在json对象上使用$.each语句时,我会得到一个错误,javascript,json,each,Javascript,Json,Each,在json对象上使用$.each语句时,我会得到一个“UncaughtTypeError:Cannotreadproperty”length“of undefined”。我知道我的$。每条语句都会导致它,因为当我对它进行注释时,console.log会按预期返回[Object,Object,Object]。我要做的是遍历对象并返回title的值 $(function () { var MENU = [ { 'title': 'Item 1', 'subme
$(function () {
var MENU = [
{
'title': 'Item 1',
'submenu': null
},
{
'title': 'Item 2',
'submenu': null
},
{
'title': 'Item 3',
'submenu': [
{
'title': 'Sub 1',
'submenu': null
},
{
'title': 'Sub 2',
'submenu': null
},
{
'title': 'Sub 3',
'submenu': [
{
'title': 'SubSub 1',
'submenu': null
},
{
'title': 'SubSub 2',
'submenu': null
},
{
'title': 'SubSub 3',
'submenu': null
}
]
}
]
}
];
var getMenuItem = function (MENU) {
$.each(MENU, function (key, value) {
var title = value.title;
$('#myMenu').append('<ul>' +'<li>' + title +'</li>' + '</ul>' );
});
console.log(MENU);
};
getMenuItem();
console.log(MENU);
});
$(函数(){
变量菜单=[
{
“标题”:“第1项”,
“子菜单”:空
},
{
“标题”:“第2项”,
“子菜单”:空
},
{
“标题”:“第3项”,
“子菜单”:[
{
“标题”:“子1”,
“子菜单”:空
},
{
“标题”:“子2”,
“子菜单”:空
},
{
“标题”:“子3”,
“子菜单”:[
{
“标题”:“第1子项”,
“子菜单”:空
},
{
“标题”:“第2子类”,
“子菜单”:空
},
{
“标题”:“第3子项”,
“子菜单”:空
}
]
}
]
}
];
var getMenuItem=函数(菜单){
$。每个(菜单、功能(键、值){
var title=value.title;
$(“#我的菜单”)。追加(“”+“- ”+标题+”
“+”
”);
});
控制台日志(菜单);
};
getMenuItem();
控制台日志(菜单);
});
您的函数getMenuItem
需要一个经过迭代的参数,但在调用中您没有传递任何参数,因此函数中的菜单
未定义,因此出现错误
所以改变
getMenuItem();
到
如果不希望将菜单实例传递给函数,并且希望使用共享变量
menu
,则从函数定义中删除参数声明,即将变量changevar getMenuItem=function(menu){
to
var getMenuItem = function () {
//now here MENU will refer to the MENU variable in the shared scope
}
函数
getMenuItem
需要一个经过迭代的参数,但在调用中没有传递任何参数,因此函数中的MENU
未定义,因此会出现错误
所以改变
getMenuItem();
到
如果不希望将菜单实例传递给函数,并且希望使用共享变量
menu
,则从函数定义中删除参数声明,即将变量changevar getMenuItem=function(menu){
to
var getMenuItem = function () {
//now here MENU will refer to the MENU variable in the shared scope
}
您必须更改函数调用或函数声明,因为它们不兼容。 声明变更如下:
var getMenuItem = function () { //removed unnecessary argument
或将调用更改为
getMenuItem(MENU) // pass MENU as argument
您必须更改函数调用或函数声明,因为它们不兼容。 声明变更如下:
var getMenuItem = function () { //removed unnecessary argument
或将调用更改为
getMenuItem(MENU) // pass MENU as argument
在这里使用示例数据运行时,您希望获得什么输出?在这里使用示例数据运行时,您希望获得什么输出?