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); });
我的看法:
$('.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);