LenovoId
@LenovoId
svg, css,js

Как отсортировать меню по возрастающей?

Есть меню с пунктами в которых есть data-num и они в разброс:

<ul class="menu">
  <li data-num="1">Первый пункт</li>
  <li data-num="3">Третий пункт</li>
  <li data-num="5">Пятый пункт</li>
  <li data-num="2">Второй пункт</li>
  <li data-num="4">Четвертый пункт</li>
  <li data-num="6">Шестой пункт</li>
</ul>

Хочу отсортировать меню по числовому порядку от 1 до самого наибольшего.
Пробовал это сделать но не знаю на сколько верно я это делал и сортировка не работает.
Как отсортировать меню?
  • Вопрос задан
  • 113 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
function sortChildren(el, key) {
  el.append(...Array
    .from(el.children, n => [ n, key(n) ])
    .sort((a, b) => a[1] - b[1])
    .map(n => n[0])
  );
}


sortChildren(document.querySelector('.menu'), n => +n.dataset.num);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект