Передать .text() в другое поле в раскрывающемся списке

Очень нужна помощь в вопросе. Имеется раскрывающийся список. То есть своего рода кнопка допустим с названием "Все страны" и по нажатию открывается список стран. При выборе страны и клике, "Все страны" заменяется на название выбранной. Это реализовать получилось, но с таким кодом

        <div class="dropdown" id="city-dropdown">
            <div class="filter-country select">
                <span>Все страны</span>
            </div>
            <ul class="dropdown-menu">
                <li>Все страны</li>
                <li>Россия</li>
                <li>США</li>
                <li>Великобритания</li>
                <li>Саудовская Аравия</li>
            </ul>
        </div>

Когда подключаю Json и за место .dropdown-menu статичного списка, падает от него уже массив, сам список появился и работает, но не работает уже li.text() и значение не подтягивается. Может .text не применим к json? И эти данные как то по другому достаются? Хотя в html структура верная.

Скрипт

$.getJSON('./api/allCountries', function(data){
    var items = [];
  
    $.each(data, function(key, val){
      items.push('<li id="' + val.id + '">' + val.name + '</li>');
    });
  
    $('<ul/>', {
      'class': 'dropdown-menu',
      html: items.join('')
    }).appendTo('.dropdown');
  });
  // Dropdown Menu
  $('.dropdown').click(function () {
    $(this).attr('tabindex', 1).focus();
    $(this).toggleClass('active');
    $(this).find('.dropdown-menu').slideToggle(300);
  });
  $('.dropdown').focusout(function () {
    $(this).removeClass('active');
    $(this).find('.dropdown-menu').slideUp(300);
  });
  $('.dropdown .dropdown-menu li').click(function () {
    $(this).parents('.dropdown').find('span').text($(this).text());
  })

Ответы (0 шт):