获取对象值报错 Cannot use 'in' operator to search for 'length' in

vars={
"a":[{
"name":"...",
"dec":".."
}],
"b":[{
"name":"...",
"dec":".."
}]
}
$("#id").click(function(){
show("a")
})
functionshow(key){
$.each(s+'.'+key,function(i,e){
....
});
}
如上~~console.log(s.a);正常输出传参就不对了Cannotuse'in'operatortosearchfor'length'in[objectObject].a求解答
慕慕森
浏览 3814回答 2
2回答

慕勒3428872

额,不是这么用的你应该是想s.a这种调用s+'.'+key有几个问题:1.s被转为字符串[objectObject]2.你传入的key是变量a不是字符串'a'3.就算传入字符串'a',最后结果是[objectObject].a4.就算s使用字符串's.a'最后这个只是一个字符串,需要eval('s.a')来编译一下s['a']//正常获取varkey='a's[key]//使用变量functionshow(key){$.each(s[key],function(i,e){....});}show('a')

子衿沉夜

点语法有两种形式:1.obj.name2.obj['name']您这个问题是在$.each()中出现的,控制台点击进入,报错在each方法中希望有所帮助
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript