为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕慕森 2019-05-08 12:38:47
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求解答
查看完整描述

2 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

额,不是这么用的你应该是想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')
                            
查看完整回答
反对 回复 2019-05-08
?
子衿沉夜

TA贡献1828条经验 获得超3个赞

点语法有两种形式:
1.obj.name
2.obj['name']
您这个问题是在$.each()中出现的,控制台点击进入,报错在each方法中希望有所帮助
                            
查看完整回答
反对 回复 2019-05-08
  • 2 回答
  • 0 关注
  • 3796 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信