我对jQuery很新,我不明白为什么这个循环不显示 对象属性。
如果你能帮助我,我将不胜感激。
var shop_array = ["title","price","img","text"];
var submit = $(".add").find(":submit");
submit.on("click",function(e){
var elements = $(".add").children(':input');
for(var i=0;i<elements.length;i++){
if($(elements[i]).val()!==""){
var object = '\"'+shop_array[i]+'\"';
console.log(shopcart.shop_values[object])//dosen't display shop_value;
console.log(object);
}
}
});
var shopcart= {
shop_values :{
"title":"a",
"price":"b",
"img":"img",
"text":"text"
},
add: function(){
}
}
答案 0 :(得分:0)
你的问题是你想要用来访问对象属性的变量"
,它们不应该存在,因为它们不在属性名称中
var object = '\"'+shop_array[i]+'\"';
console.log(shopcart.shop_values[object])//dosen't display shop_value;
应该只是
console.log(shopcart.shop_values[shop_array[i]])//dosen't display shop_value;
要使当前代码生效,shopcart
需要定义为
var shopcart= {
shop_values :{
"\"title\"":"a",
"\"price\"":"b",
"\"img\"":"img",
"\"text\"":"text"
},
add: function(){
}
}
看起来很糟糕。