@SergeiB

Как осуществить сортировку в списке?

Есть список:

<ul>
  <li class="item">
    <img src="picture1.jpg" alt="Picture 1">
    <a class="link" href="#">Франция</a></li>
  <li class="item">
    <img src="picture2.jpg" alt="Picture 2">
    <a class="link" href="#">Германия</a></li>
  </li>
  <li class="item">
    <img src="picture3.jpg" alt="Picture 3">
    <a class="link" href="#">Великобритания</a></li>
  </li>
</ul>

Как сделать сортировку пунктов списка в алфавитном порядке? Мои наброски:

var items = document.querySelectorAll(".item");
var arr = [];

for (var i = 0; i < items.length; i++) {
  var link = items[i].querySelector(".link");
  var txt = link.innerText;

  arr.push(txt);
  arr.sort();
}

Имеем массив с отсортированными значениями. Что делать дальше? Обратите внимание на то, что каждый пункт списка помимо ссылки содержит уникальную картинку.
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
[...document.querySelector('ul').children]
  .map(n => ({ el: n, text: n.querySelector('.link').innerText }))
  .sort((a, b) => a.text.localeCompare(b.text))
  .forEach(n => n.el.parentNode.append(n.el));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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