Этот вопрос уже имеет ответ здесь:
Действительно ли возможно переупорядочить элементы с JavaScript или чистым jQuery. Таким образом, если у меня есть глупый список как следующее:
- Foo
- Bar
- Cheese
Как я переместил бы элементы списка вокруг? Как помещенный элемент списка с Cheese
перед элементом списка с Foo
или переместитесь Foo
к после Bar
.
Действительно ли это возможно? Если так, как?
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
});
что-то вроде этого?
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...