使用字符串数组循环对象

时间:2013-08-10 18:56:58

标签: javascript jquery

我对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(){

    }
}

1 个答案:

答案 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(){

    }
}

看起来很糟糕。