var ul = $('ul');
var lis = ul.children('li');
ul.prepend(lis.slice(Math.round(lis.length / 2)))
Пример: http://jsfiddle.net/8SNGn/
Сначала выполняется кэширование элемента <ul>
и его потомков <li>
с использованием метода children()
[документы] .
Затем он использует метод prepend()
[docs] для добавления последних li
элементов в начало ul
.
Последние можно получить, используя метод slice()
[документы] и передав ему общее количество li
элементов, деленное на 2 (округляется с использованием Math.round()
, если у вас есть нечетное число).
EDIT:
Я только что заметил, что в заголовке вашего вопроса есть слово "клон" .
Остальная часть вопроса, кажется, не предполагает этого, но если вы действительно хотите клонировать последнюю половину, вы бы использовали clone()
[docs] метод.
var ul = $('ul');
var lis = ul.find('li');
ul.prepend(lis.slice(Math.round(lis.length / 2)).clone())
Пример: http://jsfiddle.net/8SNGn/1/
И если вы хотите, чтобы округление шло в другом направлении, вы бы использовали Math.floor()
вместо Math.round
.