jquery:逆转一个订单

时间:2011-06-02 19:07:19

标签: jquery each reverse

如何使用jquery转换订单?

我尝试了这样的建议,但它不起作用!

$($(".block-item").get().reverse()).each(function() { /* ... */ });

看看here

我希望盒装像这样重新排列,

18
17
16
etc

感谢。

5 个答案:

答案 0 :(得分:22)

如果您在列表中有一个容器,那就更容易了:

$("#container").append($(".block-item").get().reverse());

http://jsfiddle.net/BhTEN/12/

答案 1 :(得分:9)

您可以使用:

$($(".block-item").get().reverse()).each(function (i) {
    $(this).text(++i);
});

演示here
第二个demo here(更改DOM元素定位)。

另一种方式,使用jQuery和reverse

$.fn.reverse = [].reverse;
$(".block-item").reverse().each(function (i) {
    $(this).text(++i);
});

此演示here
第二个demo here(更改DOM元素定位)。

另一个替代方法是使用length(与该选择器匹配的元素数)并使用每次迭代的index从那里开始。然后你可以使用它:

var nr_of_divs = $(".block-item").length;
$(".block-item").each(function (i) {
    $(this).text(nr_of_divs - i);
});

此演示here
第二个demo here(更改DOM元素定位)。

还有一个,与上面的相关:

var nr_of_divs = $(".block-item").length;
$(".block-item").text(function (i) {
    return nr_of_divs - i;
});

演示 here

答案 2 :(得分:5)

您的代码正常运行。只需在左侧选择jQuery框架。

 $($(".block-item").get().reverse()).each(function() {
     $(this).appendTo($(this).parent());
 });

答案 3 :(得分:2)

这可能是你想要的吗?

http://plugins.jquery.com/project/reverseorder

答案 4 :(得分:1)

试试这个:

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() );

DEMO