Какой самый простой способ заказать <UL>/ <OL>в jQuery? - PullRequest
39 голосов
/ 20 ноября 2008

Я ищу пример кода, который отсортирует элементы списка в списке HTML в алфавитном порядке. Кто-нибудь может помочь?

Вот примерный список людей, с которыми можно работать:

<ul class="alphaList">
    <li>apples</li>
    <li>cats</li>
    <li>bears</li>
</ul>

Ответы [ 3 ]

90 голосов
/ 20 ноября 2008
var items = $('.alphaList > li').get();
items.sort(function(a,b){
  var keyA = $(a).text();
  var keyB = $(b).text();

  if (keyA < keyB) return -1;
  if (keyA > keyB) return 1;
  return 0;
});
var ul = $('.alphaList');
$.each(items, function(i, li){
  ul.append(li); /* This removes li from the old spot and moves it */
});
7 голосов
/ 13 сентября 2013

Для будущих гуглеров этот плагин оказался очень полезным. Он имеет возможность определять порядок символов для нелатинских языков.

Старые версии (в зависимости от jQuery)

$('.submenu > li').tsort({
    charOrder: 'abcçdefgğhıijklmnoöprsştuüvyz'
});

Для символов только на английском языке не требуется указывать опцию

$('.submenu > li').tsort();

Текущая версия (не зависит от jQuery) (29 марта 2016 г.)

Текущая версия tinysort теперь не зависит от jQuery. Чистый JavaScript. Я обновил jsfiddle для использования новой версии.

tinysort('.submenu > li', {
    charOrder: 'abcçdefgğhıijklmnoöprsştuüvyz'
});

Демо http://jsfiddle.net/ergec/EkScy/

Веб-сайт http://tinysort.sjeiti.com/

6 голосов
/ 25 октября 2016

Попробуйте это:

var elems = $('.alphalist li').detach().sort(function (a, b) {
  return ($(a).text() < $(b).text() ? -1 
        : $(a).text() > $(b).text() ? 1 : 0);
}); 
$('.alphalist').append(elems);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...