2011-04-20 147 views
4

我JSON数据如下如何JSON数据添加到选择标签jQuery中

{ "aaData": [["2","MAC"],["3","Apple"],["5","Windows"],["5","Unix"],["6","Linux"]]} 

我尝试用下面的jQuery代码,但数据不会选择标记添加

<script type="text/javascript"> 
    $(document).ready(function() { 
    $("#mc_category").change(function() { 
      $.getJSON("/admin/getSubCategory.php", null, function(data) { 
      $("#subcategory").fillSelect(data); 
     }); 
    }); 

$.fn.fillSelect = function(data) { 
    return this.clearSelect().each(function() { 
     if (this.tagName == 'SELECT') { 
      var dropdownList = this; 
      $.each(data, function(index, optionData) { 
      var option = new Option(optionData.Text, optionData.Value); 
       if ($.browser.msie) { 
        dropdownList.add(option); 
       } 
       else { 
        dropdownList.add(option, null); 
       } 
      }); 
    } 
    }); 
} 

}); 
</script> 
+3

显示我们fillSelect功能 – 2011-04-20 18:43:06

+0

更新子类别 – Elankeeran 2011-04-20 18:50:23

+0

你可能只需要选择标签$( “#子类别”)fillSelect(data.aaData)。 – Galen 2011-04-20 19:05:16

回答

5

你可以循环访问aaData数组,然后使用jQuery appendTo方法将每个项目添加到select框中。

我不知道该fillSelect方法做什么,但在这里,你可以将其替换为一个实现:

var sel = $('#subcategory'); 
for (var i = 0; i < data.aaData.length; i++) 
{ 
    var e = data.aaData[i]; 
    $('<option>').text(e[1]).val(e[0]).appendTo(sel); 
} 
+0

谢谢Wsanville – Elankeeran 2011-04-20 19:02:43

2
$("#subcategory").append(
    $.map(data.aaData,function(index,value){ 
      return $("<option/>").attr("value",value[0]).text(value[1]); 
    }).get(); 
); 
相关问题