Задать вопрос

Как поменять местами элементы в списке стран?

В Тильде есть выпадающий список с кодом стран для ввода номера телефона. Список стран в выпадающем блоке расположен в алфавитном порядке.

Подскажите, пожалуйста, как можно изменить порядок стран в списке? Чтобы сначала шли определенные страны, а после все остальные? (Россия, Украина, Казахстан и т.п.)

63a88da59f46c237109349.jpeg
  • Вопрос задан
  • 110 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
У элементов, которые надо переставить, похоже, одинаковый принцип формирования id:
"t-phonemask_" и двухбуквенный код страны.

Нашли элемент очередной страны, переставили в начало. Т.к. вставляются в самое начало общего родителя, надо пройтись по списку переставляемых в обратном порядке.

В исходной разметке эти элементы отсутствуют — подгружаются/формируются динамически. Поэтому запускать перестановку надо не сразу, а после формирования менюшки. Проще всего, но ненадёжно – через таймаут.
const sortUp = () => {
  const parent = document.querySelector('div.t-input-phonemask__options-wrap > noindex');
  const goFirst = ['ru', 'ua', 'kz'];
  goFirst.reverse().forEach(cc => {
    parent.insertAdjacentElement('afterbegin', parent.querySelector('#t-phonemask_' + cc));
  });
};
setTimeout(sortUp, 1000);
P.S. стоит Тильде чуть что-то поменять, изменить названия классов — перестанет работать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽