jquery遍历列表元素

时间:2010-11-24 09:22:21

标签: jquery

说你有这个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”,一旦你再次开始结束?

由于

3 个答案:

答案 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()