jQuery无限循环遍历每个div

我有一些带div的div,我想从当前的一个类中删除一个类,然后在下一个类中添加一个类。

然后当我到达最后一个时,我想回到开始并重新做一遍。

我已经有了这样做的方法,但它只适用于一组div,我将有许多需要独立循环的div组。

这是几个集合的示例(每个集合中会有随机数量的div):

Item1
Item2
Item3
Item1
Item2
Item3
Item4
Item5

我需要删除当前的类,并将其添加到每个集合中的下一个div,依此类推。

这是我使用的一组代码:

 $(function() { var items = $('.set div').length; current = 0; setInterval(function() { $('.set div').eq(current).removeClass('current'); if (current == items - 1){ current = 0; } else { current++; } $('.set div').eq(current).addClass('current'); }, 500); }); 

我的看法:

http://jsfiddle.net/yyY28/

 $('.set').each(function(){ (function($set){ setInterval(function(){ var $cur = $set.find('.current').removeClass('current'); var $next = $cur.next().length?$cur.next():$set.children().eq(0); $next.addClass('current'); },1000); })($(this)); });​ 

版本2:

 ​setInterval(function(){ $('.set').each(function(){ var $cur = $(this).find('.current').removeClass('current'); var $next = $cur.next().length?$cur.next():$(this).children().eq(0); $next.addClass('current'); }); },1000);​ 

也许我没有把你弄好,但是你正在寻找?

 function loop() { $(".set").each(function() { var current = $(this).children(".current").removeClass("current"); var i = current.next().length ? current.index() : 0; current.siblings(":eq(" + i + ")").addClass("current"); }); } setInterval(loop, 500);​ 

演示: http //jsfiddle.net/jGcsh/

试试这个:

 function changeCurrent(){ $('.set').each(function(){ var currentSubDiv = $(this).children('.current'); currentSubDiv.removeClass('current'); currentSubDiv.next().addClass('current'); }) } setInterval(changeCurrent,timeInMillis);