EDIT: Решение частично с помощью решения ниже. Но по какой-либо причине нижеприведенное решение будет либо правильно сортировать все в алфавитном порядке на основе метки, либо сортировать ее по категории, но комбинация обоих не работает в моем случае. Таким образом, вместо этого я использовал первую часть, которая сортирует все в алфавитном порядке, а затем используется цикл для манипулирования в каждой категории, как это:Сортировка DIVs на основе второго класса, а затем сортировка по алфавиту для каждого класса на основе внутреннего текста
for (i = 1; i <= 8; i++) { // 8 because I have 8 categories..
$('.ai-category-' + i).each(function(){
$(this).detach().appendTo('#items');
});
}
Я пытаюсь сортировать DIVs используя имя класса первых позиций заказа в категории затем упорядочивайте их в алфавитном порядке в каждой категории. Но у меня слишком много классных имен, и я не могу понять, как это сделать. Я признаюсь, что это выше моего набора навыков, и я просто не знаю, как это сделать вообще. Я знаю, что это потребует объединения нескольких функций, но я просто не знаю, с чего начать.
В настоящее время мой список выглядит следующим образом
<div id="items">
<div class="item ai-category-1 someOtherClass anotherClass">
<div class="info">
<p class="label">ZZ Item Name</p>
</div>
</div>
<div class="item ai-category-2 someOtherClass anotherClass">
<div class="info">
<p class="label">ZZ Item Name</p>
</div>
</div>
<div class="item ai-category-1 someOtherClass randomClass">
<div class="info">
<p class="label">AA Item Name</p>
</div>
</div>
<div class="item ai-category-2 someOtherClass anotherClass">
<div class="info">
<p class="label">AA Item Name</p>
</div>
</div>
</div>
И мне это нужно, чтобы заказать все .item
на основе второго класса, который говорит, что это категория, а затем заказать его с помощью .label
в алфавитном порядке в этой категории. Таким образом, результат должен выглядеть следующим образом
<div id="items">
<div class="item ai-category-1 someOtherClass randomClass">
<div class="info">
<p class="label">AA Item Name</p>
</div>
</div>
<div class="item ai-category-1 someOtherClass anotherClass">
<div class="info">
<p class="label">ZZ Item Name</p>
</div>
</div>
<div class="item ai-category-2 someOtherClass anotherClass">
<div class="info">
<p class="label">AA Item Name</p>
</div>
</div>
<div class="item ai-category-2 someOtherClass anotherClass">
<div class="info">
<p class="label">ZZ Item Name</p>
</div>
</div>
</div>
Там обыкновение быть всегда 4-х классов, но всегда будет два и .item
всегда будет первым и [class^="ai-category-"]
всегда будет вторым. Если кто-нибудь может рекомендовать любые функции, над которыми я должен смотреть или предлагать решение, я буду очень благодарен.
Хорошо, спасибо. Вы могли бы рассказать мне, как я должен использовать эту функцию с моей иерархией? –
Я пробовал $ ('# items> div'). SortElements(); но это не сортировало, поскольку мне нужно :( –
Не волнуйтесь, я пишу демо-код для вашего дела. –