1Sergey1
@1Sergey1

Сортировка html блоков JS?

Добрый день, есть много (около 500) html Блоков с названиями продуктов, как-то можно отсоритировать их по алфавиту?

<div class="slide">
	<div class="good">
		<img class="lazyload" src="img.jpg">
		<p>Банан</p>
	</div>
</div>
<div class="slide">
	<div class="good">
		<img class="lazyload" src="img.jpg">
		<p>Вишня</p>
	</div>
</div>
<div class="slide">
	<div class="good">
		<img class="lazyload" src="img.jpg">
		<p>Блю Кюрасао</p>
	</div>
</div>
<div class="slide">
	<div class="good">
		<img class="lazyload" src="img.jpg">
		<p>Чай</p>
	</div>
</div>
  • Вопрос задан
  • 1014 просмотров
Решения вопроса 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
Собрать все блоки в словарь, где ключ - слово, значение - этот блок.
Ключи отсортировать.
Расставить блоки назад в родителя первого из них.
код JavaScript
function resort(selector) {
	const nodeList = document.querySelectorAll(selector);
  const dict = {};
  const parent = nodeList[0].parentNode;
  nodeList.forEach(node => {
  	const key = node.querySelector('p').innerText;
    dict[key] = node;
    node.parentNode.removeChild(node);
  });
  const keys = Object.keys(dict);
  keys.sort().forEach(k => parent.appendChild(dict[k]));
}

resort('.slide');


Работающий пример:
Ответ написан
hzzzzl
@hzzzzl
как эти блоки появляются на странице, из базы данных то есть из массива?
правильнее всего сначала сортировать этот массив, перед выводом в html на страницу
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dimuska139
Backend developer
Подключи любую библиотеку для парсинга HTML, распарси, полученные объекты отсортируй - и преврати их обратно в HTML, чтобы руками не тасовать.
Ответ написан
Ваш ответ на вопрос

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

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