0

ここで、ウィンドウオブジェクトを使用して、オブジェクト内にプロパティ名を動的に作成できることを読みました。これが行われる方法は何ですか

私は次のような機能を持っています

function storeValues(){

    var info = {};
    $('.class1').each(function(index1, value1){
        $('.class2', $(this)).each(function(index2, value2){

            //so here I'd like to add a string to the property name
            //like 'param-' and 'detail-' so I could end up with a 
            //structure like 
            //info.param_0.detail_0
            //then
            //info.param_0.detail_1
            //info.param_1.detail_0
            //info.param_1.detail_1
            //info.param_1.detail_2
            info.'param_'index1.'detail_'index2 = $(this).find('.desired_input').val();

    });
}

これは可能ですか。それとも、それを行うためのよりスマートな方法はありますか?

4

1 に答える 1

7

これは とは関係ありません。動的オブジェクトのプロパティ名にアクセスするためwindowの表記法は、JavaScript 言語の特徴です。[]

info['param_' + index1]['detail_' + index2] = $(this).find('.desired_input').val();

もちろん、info['param_' + index1]まだ存在しない場合は、プロパティを設定する前に空のオブジェクトとして作成する必要があります。

info['param_' + index1] = info['param_' + index1] || {};
info['param_' + index1]['detail_' + index2] = $(this).find('.desired_input').val();
于 2012-11-20T20:52:59.990 に答える