说你有这个HTML
<ul class="nav sub_nav_home">
<li id="sub_nav_home1"><a href="#"><span>LINK1</span></a></li>
<li id="sub_nav_home2"><a href="#"><span>LINK2</span></a></li>
<li id="sub_nav_home3"><a href="#"><span>LINK3</span></a></li>
</ul>
如何在jquery中迭代每个“li”,添加一个“当前”类,等待3秒然后移动到下一个“li”,一旦你再次开始结束?
由于
答案 0 :(得分:3)
一个简单的解决方案可能如下所示:
$(function() {
var nav = $("ul.sub_nav_home");
setInterval(function() {
var next = nav.find("li.current + li, li:first-child").last();
nav.find("li.current").removeClass("current");
next.addClass("current");
}, 3000);
});
You can give it a try here。你可以将它压缩一点,只是试图清楚地列出正在发生的事情。这样做是每隔3秒运行一次执行的函数,我们从一开始就找到<ul>
来缓存事物,然后在每次运行时我们得到.current
<li>
之后的那个(如果有的话)是一个)和第一个,以防我们在最后。我们采取最后一个(因为它们是按文档顺序),所以我们总是更喜欢下一个循环回到开始。然后只需从当前类中删除该类,并将其添加到下一行。
答案 1 :(得分:1)
你可以使用每个功能
答案 2 :(得分:0)
我觉得你需要这个......
jQuery('#nav sub_nav_home li').each()