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

Как отсортировать DOM элементы в обратную сторону на чистом js?

Как отсортировать li внутри списка в обратном порядке (по тексту внутри)?
<ul>
        <li><a href="#">Link1</a></li>
        <li><a href="#">Link2</a></li>
        <li><a href="#">Link3</a></li>
        <li><a href="#">Link4</a></li>
    </ul>


попробовал через reverse вроде работает, но как отобразить в html странице не знаю, либо как то через метод sort еще можно
let [...sortLinks] = document.querySelectorAll('ul li')
sortLinks.reverse()
  • Вопрос задан
  • 524 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Где надо развернуть элементы: const parent = document.querySelector('ul');.

Разворачиваем:

parent.querySelectorAll(':scope > *').forEach(n => parent.prepend(n));

// или

Element.prototype.append.apply(parent, [...parent.children].reverse());

// или

const [ first, ...rest ] = parent.children;
first?.before(...rest.reverse());

// или

for (const n of parent.children) {
  parent.insertBefore(n, parent.firstElementChild);
}

// или

for (let i = parent.children.length; i--;) {
  parent.insertAdjacentElement('beforeend', parent.children[i]);
}

// или

const elems = Array.from(parent.children);
while (elems.length) {
  parent.appendChild(elems.pop());
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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