2015-04-26 128 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