Javascript 计算所有div并按降序将范围内的每个数字相加
我有以前的代码 --完整的代码运行= 此JQuery代码统计页面中的每个div,并在span中添加订单号 但我需要做同样的降序 所以输出将是这样的 而不是 您可以使用以下功能: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
$($("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;
});