请教一个js对象[]访问的问题?
我所理解的对象访问方式有两种:
object.property
object['property']
但是下边代码的parState
是一个对象,不理解的是这一句parState[$(parLabel[i]).attr('data-label')] = true;
data-label
获取的是一个id数字
<span class="status icons-checked checkNum parLabel" check-num="{{itemList.length}}" data-label="{{supplierId}}"></span>
function getLabelState(){
var totalState = [];
var parState = {};
var childState = {};
var parLabel = $('.parLabel');
var childLabel = $('.childLabel');
for(var i=0;i<parLabel.length;i++){
if($(parLabel[i]).hasClass('icons-checked')){
parState[$(parLabel[i]).attr('data-label')] = true;
}else{
parState[$(parLabel[i]).attr('data-label')] = false;
}
}
for(var j=0;j<childLabel.length;j++){
if($(childLabel[j]).hasClass('icons-checked')){
childState[$(childLabel[j]).attr('data-label')] = true;
}else{
childState[$(childLabel[j]).attr('data-label')] = false;
}
}
totalState.push(parState);
totalState.push(childState);
return totalState;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
有什么疑问吗?就是一个赋值吧
$(parLabel[i]).attr('data-label') 就是取到每个span 的data-label属性值
然后作为key放到 parState中 value 就是你的那个判断不是true就是false
[]里面是动态的不是很正常么。。
最后都会转化为字符串在对象中找寻对应的key访问
数字做key没有问题啊……
当键为数字的时候,obj[key]的key是数字还是字符串,效果是一样的。
另外就是明明用jq,为什么循环搞那么复杂