2015-04-26 167 views
0

我的組合框在我的加載方法運行後沒有顯示任何項目。我調試了我的循環,我可以看到它試圖填充我的組合框(或者看起來像是在做它),但組合框中沒有項目。我究竟做錯了什麼?用JSON數據填充組合框

HTML:

<select id="filterComboBox"> 
</select> 

JSON數據:

{ 
    "Filters": [ 
     { 
      "text": "Sys", 
      "value": "Sys" 
     }, 
     { 
      "text": "EE/RF", 
      "value": "EE/RF" 
     }, 
     { 
      "text": "ME", 
      "value": "ME" 
     } 
    ] 
} 

方法加載組合框:

function populateFiltersComboBox(path) { 
    $.getJSON(path) 
    .done(function (data) { 
     if (!data) { 
      return 
     } 

     $(data.Filters).each(function() { 
      debugger; 

      var option = $('<option />'); 

      option.attr('value', this.value).text(this.text); 

      $('#filterComboBox').append(option); 
     }); 
    }); 
} 
+0

我剛剛意識到我用來創建select的jQuery函數在我的填充函數之後運行,並導致所有項目被清除。在這個時間太長了:( – Wannabe

回答

0

嘗試

$('#filterComboBox').append('<option value="' + this.value + '">' + this.text + '</option>'); 

select挑剔你如何做事。我建議只追加HTML。

+0

)謝謝,我意識到我的問題,現在我的工作已經開始,並且在你的回答中,$(this).value導致select被填充[object]而不是文本。我將它改爲「this」,並將它正確地放入文本中。 – Wannabe