2016-09-30 1 views
0

주어진 구성 개체의 값에 따라 옵션을 사용하여 아래 코드에서 'shuttle-dst'(select) 요소를 채우려 고합니다. . 이 코드는 이전에 존재했던 옵션의 select 요소를 먼저 지우고 configs 객체의 할당 된 속성을 반복하며이 예제의 이름 속성 값만 콘솔에 출력합니다. 이 특정 구성에 다섯했다 :개체를 반복하고 옵션과 값을 사용하여 선택 요소 채우기

Admin User 
MPR User 
SAMHSA User 
States User 
All States User 

그러나이 코드는 마지막 할당 된 값의 다섯와 선택 요소를 채우지 않습니다 - '모든 국가의 사용자. 왜?

function loadConfigurations(configs){ 
    $('#shuttle-dst').empty(); 
    for(var i=0; i < configs.assigned.length; i++){ 
    var item = configs.assigned[i]; 
    console.log(item.name); 

     $.each(item, function(){ 
      $('#shuttle-dst').html('<option value="' + item.value + '">' + item.name + '</option>'); 
     }); 
    } 
} 
+0

왜 호출 $의 .each()? – thanksd

+0

각 항목을 반복하여 선택 요소 ('# shuttle-dst')에 옵션으로 추가하려고합니다. –

+0

그러나 for 루프는 이미 각 항목을 반복하고 있지 않습니까? – thanksd

답변

0

먼저 각 항목의 for 루프 안에 있으므로 $.each()을 호출 할 필요가 없습니다.

이 문제를 해결하기 위해, 당신은 ( append()html() 발신자 요소의 HTML을 대체 발신자 요소에 새로운 요소를 추가)하여 # 셔틀 - DST 요소 대신 html()append()을 사용해야합니다.

예를 들어

: 항목

function loadConfigurations(configs) { 
    $('#shuttle-dst').empty(); 
    for (var i=0; i < configs.assigned.length; i++) { 
     var item = configs.assigned[i]; 
     $('#shuttle-dst').append(
      '<option value="' + item.value + '">' + item.name + '</option>' 
     ); 
    } 
} 
관련 문제