使用jQuery .each()的增量数字

时间:2013-06-18 16:09:52

标签: javascript jquery each

如何递增到特定数字(3),然后重置,循环回第一个数字。第一个数字应从1开始(不是0)。

我尝试过使用:i=1; i<=3; i+=1

这是我的基本代码:

$(document).ready(function() {
    $(".std-price .local-pricing").each(function(i) {
            $(this).addClass("ab-price" + (i));
    });
});

如果我使用for()each(),那么它会给我class="ab-price1 ab-price2 ab-price3"

任何帮助和参考链接(在此过程中学习)都会很棒。

谢谢!

2 个答案:

答案 0 :(得分:3)

如果您想设置班级ab-price1, ab-price2, ab-price3, ab-price1, ab-price2等,那么您可以这样做:

$(".std-price .local-pricing").each(function(i) {
    $(this).addClass("ab-price" + (1+(i%3)));
});

这使用the modulo operator

如果您不需要与IE8兼容,这也可以使用:nth-of-type() pseudo class在纯CSS中解决。

答案 1 :(得分:2)

您可以使用modulo operator

$(".std-price .local-pricing").addClass(function(i) {
    return "ab-price" + (i % 3 + 1);
});

此外,相当多的jQuery函数需要回调(例如addClasswidthattrprop),因此您通常可以摆脱{{1 }}