1

私は 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(){

    }
}
4

1 に答える 1

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

    }
}

これはひどく見えるでしょう。

于 2013-08-10T19:02:38.867 に答える