@Andress84

Как сделать сортировку ul li через js?

Доброго времени. Есть сгенерированный список ul/li через php , и мне необходимо поменять местами li .
То-есть li с классом lang-item-5 сделать первым по списку, lang-item-10 вторым, lang-item-2 третьим

Сейчас список выглядит так:
<ul>
   <li class="lang-item-2"></li>
   <li class="lang-item-5"></li>
   <li class="lang-item-10"></li>
</ul>
  • Вопрос задан
  • 226 просмотров
Решения вопроса 1
DanArst
@DanArst Куратор тега JavaScript
Гриффиндор в моде при любой погоде!
А почему бы не сделать это сразу на бэке, вместо того, чтобы тратить ресурсы пользователя?
Ну если вдруг такой "возможности" нет, то можно сделать и на CSS:
ul {
   display: flex;
   flex-direction: column;
}
.lang-item-10 {
   order: 1;
}
.lang-item-2 {
   order: 2;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
const order = [5, 10, 2];
const parent = document.querySelector('ul');
const sorted = [];
[...parent.children].forEach(el => {
  sorted[order.indexOf(+el.className.match(/lang-item-(\d+)/)[1])] = el;
});
sorted.forEach(el => parent.appendChild(el));
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы