2016-08-07 11 views
1

配列を使用してチェックしたいチェックボックス付きのモジュールがたくさんあります。 複数のモジュールを含む3つのパッケージがあります。私はパッケージ名でドロップダウンを生成しました。パッケージを選択すると、チェックボックスがオンになります。ダイナミックarraynameの配列要素へのアクセス

しかし、私は生成された配列名に問題があります。私はそれにアクセスすることはできません。

$("#package").change(function() { 
    var starter = ["module1", "module2", "module3"]; 
    var advanced = ["module1", "module2", "module3", "module4", "module5"]; 
    var everything = ["module1", "module2", "module3", "module4", "module5", "module6", "module7"];  

    var contract = $('#package').val().toLowerCase(); 
    var arname = {}; 

    $.each(arname[contract], function(index, name){ 
     $("#module_" + name).prop('checked', true); 
    });  
}); 

ドロップダウンメニューの値に応じて、どのように配列名を選択できますか?

+1

ので、正確にあなたの元のコードのようなものにアクセスすることができます契約は「始動」、「上級」、「すべて」のいずれかになりますか? –

+0

はい。それらの3つの名前の1つ。 –

答えて

1

は性質starteradvancedと、オブジェクト、arnameを行い、この

$("#package").change(function() { 
    var arname = { 
     starter: ["module1", "module2", "module3"], 
     advanced: ["module1", "module2", "module3", "module4", "module5"], 
     everything: ["module1", "module2", "module3", "module4", "module5", "module6", "module7"] 
    } 
    var contract = $('#package').val().toLowerCase(); 

    $.each(arname[contract], function(index, name){ 
     $("#module_" + name).prop('checked', true); 
    });  
}); 

のように、少しあなたのコードを再配置し、everything

あなたは

+0

またはES2015 +では、 'Map'を使用します。 –

+0

コードを投稿するだけではなく、*説明してください。 ** **投稿する前に、後で編集するのではなく、答えを投稿する。あなたはES2015 +答えを投稿する必要があり - - 私は*マップ*は –

+1

だけでなく、元のコードを見て、私は彼があまりにも多くの説明 –

関連する問題