переупорядочить элементы списка - jQuery? [дубликат]

Этот вопрос уже имеет ответ здесь:

Действительно ли возможно переупорядочить

  • элементы с JavaScript или чистым jQuery. Таким образом, если у меня есть глупый список как следующее:

    • Foo
    • Bar
    • Cheese

    Как я переместил бы элементы списка вокруг? Как помещенный элемент списка с Cheese перед элементом списка с Foo или переместитесь Foo к после Bar.

    Действительно ли это возможно? Если так, как?

  • 53
    задан Flexo 25 November 2012 в 08:30
    поделиться

    3 ответа

    var ul = $("ul");
    var li = ul.children("li");
    
    li.detach().sort();
    ul.append(li);
    

    Это простой пример, в котором

  • узлы сортируются в некотором порядке по умолчанию. Я вызываю функцию detach, чтобы избежать удаления любых данных/событий, связанных с узлами li.

    Вы можете передать функцию для сортировки, а также использовать пользовательский компаратор для сортировки.

    li.detach().sort(function(a, b) {
       // use whatever comparison you want between DOM nodes a and b
    });
    
  • 84
    ответ дан 7 November 2019 в 08:24
    поделиться

    Взгляните на jquery ui sortable

    http://jqueryui.com/demos/sortable/

    3
    ответ дан 7 November 2019 в 08:24
    поделиться

    что-то вроде этого?

    ​var li = $('ul li').map(function(){
                  return this;
             })​.get();
    $('ul').html(li.sort());
    

    демо

    Я несколько заблудился, возможно, вам нужно что-то вроде этого ...

    $('ul#list li:first').appendTo('ul#list'); // make the first to be last...
    $('ul#list li:first').after('ul#list li:eq(1)'); // make first as 2nd...
    $('ul#list li:contains(Foo)').appendTo('ul#list'); // make the li that has Foo to be last...
    

    больше здесь1 и здесь2

    4
    ответ дан 7 November 2019 в 08:24
    поделиться
    Другие вопросы по тегам:

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