Ответ 1
Если у вас есть контейнер вокруг списка, это немного проще:
$("#container").append($(".block-item").get().reverse());
Как мне изменить порядок с помощью jquery?
Я попробовал такое предложение, но это не сработает!
$($(".block-item").get().reverse()).each(function() { /* ... */ });
Посмотрите здесь.
Я хочу, чтобы boxed был перестроен следующим образом:
18
17
16
etc
Спасибо.
Если у вас есть контейнер вокруг списка, это немного проще:
$("#container").append($(".block-item").get().reverse());
Вы можете использовать это:
$($(".block-item").get().reverse()).each(function (i) {
$(this).text(++i);
});
Демо здесь.
Вторая демонстрация здесь (изменение позиционирования элементов DOM).
Другой способ, используя также jQuery с reverse:
$.fn.reverse = [].reverse;
$(".block-item").reverse().each(function (i) {
$(this).text(++i);
});
Эта демонстрация здесь.
Вторая демонстрация здесь (изменение позиционирования элементов DOM).
Еще одна альтернатива - использовать length
(количество элементов, соответствующих этому селектору), и спуститься оттуда с помощью index
каждой итерации. Затем вы можете использовать это:
var nr_of_divs = $(".block-item").length;
$(".block-item").each(function (i) {
$(this).text(nr_of_divs - i);
});
Эта демонстрация здесь
Вторая демонстрация здесь (изменение позиционирования элементов DOM).
Еще один, относящийся к приведенному выше:
var nr_of_divs = $(".block-item").length;
$(".block-item").text(function (i) {
return nr_of_divs - i;
});
Демо здесь
Ваш код работает. Просто выберите jQuery framework в левой руке.
$($(".block-item").get().reverse()).each(function() {
$(this).appendTo($(this).parent());
});
Может ли это быть то, что вы ищете?
попробуйте следующее:
function disp(divs) {
var a = [];
for (var i = 0; i < divs.length; i++) {
a.push(divs[i].innerHTML);
}
alert(a);
}
disp( $("div.block-item").get().reverse() );