Javascript 计算所有div并按降序将范围内的每个数字相加

Javascript 计算所有div并按降序将范围内的每个数字相加,javascript,jquery,Javascript,Jquery,我有以前的代码 --完整的代码运行= 此JQuery代码统计页面中的每个div,并在span中添加订单号 但我需要做同样的降序 所以输出将是这样的 而不是 您可以使用以下功能: $($("div").get().reverse()).each(function (i) { $(this).find("span").text(++i); }); var nr_of_divs = $("div").length; $("div").each(function (i) { $(th

我有以前的代码

--完整的代码运行=

此JQuery代码统计页面中的每个div,并在span中添加订单号

但我需要做同样的降序

所以输出将是这样的

而不是

您可以使用以下功能:

$($("div").get().reverse()).each(function (i) {
    $(this).find("span").text(++i);
});
var nr_of_divs = $("div").length;
$("div").each(function (i) {
    $(this).find("span").text(nr_of_divs - i);
});
演示 另一种方法,也可将jQuery与is一起使用:

这个演示。(谢谢你的建议。)

另一个替代方法是使用
长度(匹配该选择器的元素计数),然后使用每次迭代的
索引
。然后你可以使用这个:

$($("div").get().reverse()).each(function (i) {
    $(this).find("span").text(++i);
});
var nr_of_divs = $("div").length;
$("div").each(function (i) {
    $(this).find("span").text(nr_of_divs - i);
});
这个演示

还有一个,与上面的一个相关,灵感来自:


演示

您可以放置以下内容:

var length_div = $("div").length

    $("div").each(function(i) {
        var tmp  = length_div-i;   
        $(this).find("span").text(tmp);
    });

您可以编写一个在集合中反向运行的for循环,但我想只需从元素数中减去计数器就可以得到反向编号:

var divs = $("div"),
    l = divs.length;
divs.each(function(i) {
    $(this).find("span").text(l - i);
});
()


听起来您实际上需要一个css计数器。您可能希望将
$(“div”)
存储在
.each()
循环之外,这样就不会每次都执行它iteration@Ian绝对正确,我也不能使用tmp变量,但是JimYeah更清楚,
tmp
变量很好,我的意思是运行一次
$(“div”)
只会查询一次DOM,这可能是这些操作中最昂贵的部分。无论如何,一个很好的例子:)另一个反转选项是使用以下内容:
jQuery.fn.reverse=[].reverse
,然后只需
$(“div”).reverse()。每个(func…
。取自此处:Good suggestion@Ian!将其添加到答案中。
var divs = $("div"),
    l = divs.length;
divs.each(function(i) {
    $(this).find("span").text(l - i);
});
$("div span").text(function(i) {
    return $("div span").length-i;
});