2017-12-20 21 views
-2

루프 내부에서 선택 옵션을 추가하려고하지만이를 수행하는 방법을 이해할 수 없습니다. jquery 내 정상적인 코드는 다음과 같습니다. var myselect2 = $ (''); 내부 선택 루프를 추가하는 방법

var myselect2 = $('<select>'); 
    myselect2.append($('<option disabled selected value ></option >').val("").html("")); 
     myselect2.append($('<option ></option>').val("a").html("a")); 
     myselect2.append($('<option ></option>').val("b").html("b")); 
     myselect2.append($('<option ></option>').val("c").html("c")); 
     myselect2.append($('<option ></option>').val("d").html("d")); 

      $('#health_institutions1').append(myselect2.html()); 

내 HTML 코드는 다음과 같습니다

<select multiple="" class="form-control" id="health_institutions1"> 

나는 다음이 코드를하지만 그것은 작동하지 않습니다

myselect2.append($('<option disabled selected value ></option >').val("").html("")); 
    $.ajax({ 
     type: 'GET', 
     url: url()+'/patient_occupancies.json', 
     dataType: 'json', 
     success: function (datavalues1) { 



     $.each(datavalues1, function(i, val) { 
        var indicator1 = val.indicators; 

        if (indicator1 === 'Outpatient visits') { 
        var x = val.District; 
        myselect2.append($('<option ></option>').val(x).html(x)); 
         // console.log(textToInsert); 
        console.log(x);     } 

     }); 


     } 
    }); 

$('#health_institutions1').append(myselect2.html()); 

가 어떻게에 옵션을 추가 할 수 있습니다 행운을 시도하고있다 내 경우.

+1

"작동하지 않습니다."- 정교하게 신경 쓰시겠습니까? 스크립트 오류가 있습니까? 그것은 당신의 코드에 도달하지 않습니까? 'datavalues1'의 값은 무엇입니까? 배열입니까 아니면 추가 속성이 있습니까? –

+0

그것은 b c d와 같은 값을 가지고 있습니다 –

+0

배열에 있습니까? 자바 스크립트 개체의 속성으로? xml? 아들? –

답변

2

다음 코드와 같은 것이 사용자가 원하는 것을 성취해야합니다.

var myselect2 = $('<select>'); 
myselect2.append($('<option disabled selected value ></option >').val("").html("")); 

var items = ["a", "b", "c", "d"]; 
for (var i = 0; i < items.length; i++) { 
    myselect2.append($('<option ></option>').val(items[i]).html(items[i])); 
} 

$('#health_institutions1').append(myselect2.html()); 

기본적으로 우리는 4 개의 값을 갖는 items 배열을 생성합니다. a, b, cd. 그런 다음 for 루프를 실행하여 각각을 myselect2에 추가하십시오.

업데이트 된 질문과 같이 AJAX 호출을하는 경우 요소 생성을 실행 한 후 페이지에 추가해야합니다. 즉, AJAX 콜백 내에 마지막으로 추가해야합니다. 예를 들어.

success: function(datavalues1) { 
    $.each(datavalues1, function(i, val) { 
     var indicator1 = val.indicators; 

     if (indicator1 === 'Outpatient visits') { 
      var x = val.District; 
      myselect2.append($('<option ></option>').val(x).html(x)); 
      // console.log(textToInsert); 
      console.log(x); 
      $('#health_institutions1').append(myselect2.html()); 
     } 
    }); 
} 

이렇게하면 AJAX 호출 성공 후에 추가됩니다.

+0

그것은이 같은 작동하지 { VAR의 indicator1 val.indicators = $ .each (datavalues1 함수 (I, 발) 경우 (indicator1 === '외래 방문') { VAR X = val.District ; myselect2.append ($ ("

+0

아약스 내부 편집을 제안 할 수 있습니다 –

+0

무슨 아약스인가요? 아약스가 없습니다. –