Как добавить данные JSON в тег выбора в JQuery - PullRequest
4 голосов
/ 20 апреля 2011

У меня есть данные JSON, как показано ниже

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

И я пытаюсь использовать приведенный ниже код jquery, но данные не добавляются с помощью тега select

<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>

Ответы [ 2 ]

5 голосов
/ 20 апреля 2011

Вы можете просто перебрать массив 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);
}
2 голосов
/ 20 апреля 2011
$("#subcategory").append(
     $.map(data.aaData,function(index,value){
          return $("<option/>").attr("value",value[0]).text(value[1]);
     }).get();
 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...