index.html 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <link rel="stylesheet" href="style.css">
  8. <title>Document</title>
  9. </head>
  10. <body>
  11. <script>
  12. /*countries and cities
  13. fetch('https://raw.githubusercontent.com/russ666/all-countries-and-cities-json/master/countries.min.json').then(res => res.json())
  14. .then(data => {
  15. //эта функция запускается когда данные скачиваются.
  16. //остальной код работает РАНЬШЕ.
  17. //только ТУТ есть переменная data со скачанными данными
  18. console.log(data) //изучите структуру, получаемую с сервера в консоли
  19. })
  20. По аналогии с предыдущем заданием, реализуйте интерфейс выбора страны и города:
  21. по закрузке данных наполняйте select#countries элементами option с названиями стран;
  22. так же назначьте обработчик события onchange в select#countries, который:
  23. удаляет старый контент select#cities (достаточно занести в innerHTML или innerText пустую строку)
  24. добавляет в select#cities элементы option с городами из выбранной только что страны.
  25. Таким образом, при изменении страны будет меняться список городов в select#cities*/
  26. {
  27. fetch('https://raw.githubusercontent.com/russ666/all-countries-and-cities-json/master/countries.min.json').then(res => res.json())
  28. .then(data => {
  29. //эта функция запускается когда данные скачиваются.
  30. //остальной код работает РАНЬШЕ.
  31. //только ТУТ есть переменная data со скачанными данными
  32. console.log(data) //изучите структуру, получаемую с сервера в консоли
  33. const countries = document.createElement('select')
  34. const cities = document.createElement('select')
  35. for (country in data){
  36. const optionCounty = document.createElement('option')
  37. optionCounty.innerText = optionCounty.value = country
  38. countries.append(optionCounty)
  39. }
  40. countries.onchange = () => {
  41. cities.innerText = ''
  42. for (city of data[countries.value]){
  43. const optionCity = document.createElement('option')
  44. optionCity.innerText = optionCity.value = city
  45. cities.append(optionCity)
  46. }
  47. }
  48. document.body.append(countries)
  49. document.body.append(cities)
  50. })
  51. }
  52. </script>
  53. </body>
  54. </html>