1

如何递增到特定数字(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()or each(),它会给我class="ab-price1 ab-price2 ab-price3"

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

谢谢!

4

2 回答 2

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

这使用模运算符

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

于 2013-06-18T16:12:48.990 回答
2

您可以使用模运算符

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

此外,相当多的 jQuery 函数接受回调(例如addClasswidthattrprop),因此您通常可以摆脱each.

于 2013-06-18T16:13:11.843 回答