2016-05-01 7 views
1

Я новичок в json и борюсь с разделом кода. Я хочу заполнить загрузочную кнопку dropdown с данными из json-файла (названия стран).Как заполнить выпадающую кнопку с внешним файлом JSON в HTML

Это мой HTML-код:

<div class="dropdown btn-group" id="countryBut"> 
    <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 
        Select Your Country <span class="caret"></span> 
    </button> 
    <ul class="but-dropdown dropdown-menu"> 

    </ul> 
</div><!--end of btn-group--> 

Это мой внешний файл JSON - countries.json

{ 
    "countries": [{ 
    "name":"Afghanistan" 
    }, { 
    "name": "Albania" 
    }, { 
    "name": "Argentina" 
    }, { 
    "name": "United Kingdom" 
    }] 
} 

И это мой файл JavaScript в HTML:

<script type="text/javascript"> 
    $(document).ready(function(){ 
$.getJSON('countries.json', function(data) { 
    for(var index in data.countries) { 
     $('#countryBut ul').append('<li><a href="#" data-maker="'+data.countries[index].name 
    +'>'+data.countries[index].name+'</a></li>'); 
    } 
    }); 
}); 
</script> 

Попытка заставить его работать, но не может найти полезные ресурсы. Может кто-нибудь помочь?

ответ

1

Ваша часть javascript как-то странная.

Попробуйте этот код:

$(document).ready(function(){ 
    $.getJSON('countries.json', function(data) { 
     for(index in data.countries) { 
      $('#countryBut ul').append('<li><a href="#" data-maker="'+data.countries[index].name+'">'+data.countries[index].name+'</a></li>'); 
     } 
    }); 
}); 

Это как ваш JSON должен выглядеть:

{ 
    "countries": [ 
     { 
      "name":"Afghanistan" 
     }, 
     { 
      "name": "Albania" 
     }, 
     { 
      "name": "Argentina" 
     }, 
     { 
      "name": "United Kingdom" 
     } 
    ] 
} 
+0

Я думаю, что 'json.countries' должен быть' data.countries'. – Ankanna

+0

Да. Спасибо @JohnAnkanna – tilz0R

+0

Я пробовал, но все еще ничего не отображал в раскрывающемся списке. Но спасибо за ваши усилия – shaun

0

Эй ваш передний конец html файл вы забыли добавить класс dropdown в Див так просто добавить класс поскольку вы используете bootstrap для UI

<div class="btn-group dropdown" id="countryBut"> 

Попробуйте Понравился

$(document).ready(function(){ 
    $.getJSON('countries.json', function(data) { 
      for(var index in data.countries) { 
     $('#countryBut ul').append('<li><a href="#" data-maker="'+data.countries[index].name+'">'+data.countries[index].name+'</a></li>');  } 
    }); 
}); 
+0

спасибо, я думаю, может быть проблема с моей файловой структурой json. – shaun

+0

@shaun не забудьте использовать 'var' в' for loop', когда вы используете переменную с первого раза ......... – Ankanna

+0

больше нет ошибок, но ничего не отображается при выпадающем списке – shaun

0

JSon файл будет выглядеть так:

"countries": [{ 
    "name": "Afghanistan" 
}, { 
    "name": "Albania" 
}, { 
    "name": "Argentina" 
}, { 
    "name": "United Kingdom" 
}] 

Надежда это прямо сейчас.

+0

Нет. Проверьте мой первый ответ, как он выглядит. – tilz0R

+0

все еще говорит, что мой файл countries.js сформирован неправильно – shaun

+0

Ваш также говорит, что – shaun

 Смежные вопросы

  • Нет связанных вопросов^_^