在.each()中创建一个无休止的循环

时间:2014-06-16 12:21:32

标签: javascript jquery

我试图给每个列表元素一个不同的颜色。但是,我只有2种颜色但是10种永久链接

我的问题:

我希望颜色再次循环,只要有永久链接。

  var colors = ['#ff9f9d', '#EB1B53'];

  $('a.permalink').each(function(i) {
      $(this).css('color', colors[i]);
      console.log($(this));
  });

确保它再次启动颜色数组的最佳方法是什么?如果它到达终点?

3 个答案:

答案 0 :(得分:5)

尝试使用模数运算符来获取类似

的提醒
var colors = ['#ff9f9d', '#EB1B53'];

$('a.permalink').each(function (i) {
    $(this).css('color', colors[i % colors.length]);
    console.log($(this));
});

它可以缩短为

$('a.permalink').css('color', function (i) {
    return colors[i % colors.length];
});

演示:Fiddle

答案 1 :(得分:1)

尝试在这里使用简单的modulo数学,

$('a.permalink').each(function(i) {
      $(this).css('color', colors[i%2]);
      console.log($(this));
});

答案 2 :(得分:0)

我猜的不是最高效的,但你明白了:

var colors = ['#ff9f9d', '#EB1B53'];


$('a.permalink').each(function() {
    $(this).css('color', colors.reverse()[1]);
    console.log($(this));
});