【问题标题】:Jquery loop through li one by onejquery通过li一一循环
【发布时间】:2013-05-02 22:14:43
【问题描述】:

我有以下代码,它一个一个地显示一个 li 项目。

var show = 1;
var current = show - 1;
var length = 9;

var gallery = $('.quotescroll');



var galleryItems = gallery.children('li');
length = galleryItems.length;


setInterval(function(){
    current = (current+1)%60;

    galleryItems.eq(current).slideDown();
    galleryItems.eq(current - show).slideUp();
}, 10000);

我唯一的麻烦是我现在需要它不断地循环遍历无序列表。我将如何实现这一目标?

编辑

我发现这段代码完全符合我的需要,但是它没有漂亮的幻灯片动画。

 setInterval(function() {
     var firstLi = $('.quotescroll li').first().detach();
    $('.quotescroll').append($(firstLi));
 }, 5000);

【问题讨论】:

  • “持续”是什么意思?
  • 我想,一旦到达最后 li,他想在setInterval 重复他正在做的事情。
  • @tymeJV 我猜“连续”是指当它到达终点时,他希望它回到起点并再次遍历它们。也许“循环”会比“循环”更好。希望肖恩能证实这一点,或者澄清他们的实际意思。
  • 抱歉,我就是这个意思。
  • @SeanLang 在下面查看我的答案。那假设可以解决您的问题

标签: jquery html css loops


【解决方案1】:

假设quotescroll 是您的列表类:

$('.quotescroll li').each(function() {
    //this now refers to each li
    //do stuff to each
});

【讨论】:

  • 抱歉,我是新手。我将如何使用它一一显示每个 li?
【解决方案2】:

遍历一个 jQuery 对象

为了循环你的 li 的选择器,好的做法是使用 each() 函数,它遍历一个 jQuery 对象,为每个匹配的元素执行一个函数.

根据你的例子:

$(gallery, 'li').each(function() {
    //Your code goes here
    //$(this) will target the current li being iterated
});

它的语法是:$(selector).each(function(index, Element))

您也可以查看 jQuery API 文档 here

【讨论】:

    【解决方案3】:
    $( ".quotescroll li" ).each(function( index ) {
          console.log( index + ": " + $(this).text() );
    });
    

    应该这样做

    详情请见:http://api.jquery.com/each/

    【讨论】:

    • 通过定位 li 元素,您可能会在他的代码中定位其他 li,而他不希望它们成为目标。您需要更具体:$(.quotescroll li) 或 $(gallery, 'li')。
    • @Lior 是的,这意味着更多的是通用的selector,但我想这里应该有一些明确性。
    • 太棒了!它只会为他服务
    猜你喜欢
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 2012-12-08
    相关资源
    最近更新 更多