Leave a comment

Comments 4

t_s_v November 23 2020, 05:51:50 UTC
Таки будете смеяться, но удобнее всего как раз через jQuery
https://stackoverflow.com/questions/14160498/how-can-i-sort-elements-by-numerical-value-of-data-attribute
Что Вам будет удобнее в функции сортировки - .dataset или .getAttribute или какой еще способ обращения - смотрите сами.
https://html5.by/blog/dataset/

Reply

just_hoaxer November 23 2020, 07:33:11 UTC
Спасибо за помощь, однако требуется сортировка по тексту внутри контейнера. А не по значению тега контейнера. Скрипт должен искать теги с указанным id или class, получать первую букву или цифру внутри этого тега, и сортировать блоки по ним.

Reply

t_s_v November 23 2020, 08:29:34 UTC
Искать дочерние элементы удобно с помощью find(), если элемент это "a" (ну, передаваемый в функцию сортировки), и нужно взять его содержимое, будет
a.find('#id1').text() - если по id = id1
a.find('.class1').text() - если по class = class1

Reply

t_s_v November 23 2020, 08:41:18 UTC
Если ближе к примеру в посте - в функцию сортировки должны попасть пара div с class=bigdiv, внутри функции сортировки надо взять a.find('.first').text() - для первого div это выражение вернет 'Собака'

Еще понадобится div, который оборачивает все сортируемое, для примера

Тогда должно получиться что-то вроде

var $wrapper = $('.tosort');

$wrapper.find('.bigdiv').sort(function(a, b) {
av = a.find('.first').text();
bv = b.find('.first').text();
return av < bv ? -1 : ((av > bv) ? 1 : 0);
})
.appendTo($wrapper);

Если где-то опечатки, сорри, код в браузере не проверял.

Reply


Leave a comment

Up