Сортировка списка по размеру - PullRequest
1 голос
/ 01 декабря 2011

Итак, у меня есть кое-что, что:

<ul id="list">
<li class="item">
<a>
<span class="name> name1 </span>
</a>
<a>
<span class="name> name2 </span>
</a>
<a>
<span class="name> name3 </span>
</a>
</li>
</ul>

Как мне отсортировать этот список по названию по алфавиту?

С уважением

Ответы [ 3 ]

3 голосов
/ 01 декабря 2011

Попробуйте этот плагин:

http://james.padolsey.com/javascript/sorting-elements-with-jquery/

с помощью пользовательского компаратора, что-то вроде этого:

$('li').sortElements(function(a, b){
    return $(a).find('.name').text() > $(b).find('.name').text() ? 1 : -1;
});
1 голос
/ 01 декабря 2011
$(function() {
    var names = elements = [];
    $('.item .name').each(function(i, item) {
        var name = $.trim($(this).text()) + '_' + i;
        names[i] = name;
        elements[name] = $(this).parent().remove().clone();
    });
    $.each(names.sort(),function(i, item) {
        $('.item').append(elements[item]);
    });
});
0 голосов
/ 11 мая 2014

Для простых случаев вам даже не нужен плагин.Этот код помог мне отсортировать список ссылок:

function sortAlpha(a,b){
    return $(a).find('a').text().toLowerCase() > $(b).find('a').text().toLowerCase() ? 1 : -1;
};

$('#thelist li').sort(sortAlpha).appendTo('#thelist');

Нет необходимости использовать теги span с этим методом.

(основная идея не моя, я скопировал еегде-то, но не помню, откуда.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...