2016-08-07 2 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

속성 starter, advanced으로, 객체, 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

단지 코드를 게시하는 것이 아니라 * 설명하십시오. ** ** 답변을 게시하기 전에, 나중에는 편집하지 말고. –

+1

글쎄, 원래 코드를보고, 나는 그가 너무 가깝다고 생각하여 너무 많은 설명이 필요하지 않았다. –