jquery显示同一类的下一个div?

前端之家收集整理的这篇文章主要介绍了jquery显示同一类的下一个div?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一堆div喜欢

            
Box_bg">
IoUs">

和一堆jquery

$(document).ready(function(){   
    $(".slides").hide();

        var length = $(".slides").length;
        var ran = Math.floor(Math.random()*length);
        $(".slides:nth-child(" + ran + ")").show();

    $('.prevIoUs').click(function() {
        $(".slides").parentsUntil(".slides").prev().show();
        $('.slides').hide();
    });

    $('.next').click(function() {
        $(this).parentsUntil(".slides").next().show();
        $('.slides').hide();
    });
});

现在我想要的是页面加载,显示一个随机的“.slides”工作正常.然后当用户按下“.next”或“.prevIoUs”时,它会加载下一个“.slides”.

但是我似乎无法让它工作?当我按下一个或上一个时它什么都没显示

有帮助吗?

最佳答案
你应该用

以前的

$(this).closest('.slides').prevAll('.slides').eq(0).show();

并为下一个

$(this).closest('.slides').nextAll('.slides').eq(0).show();

最重要的是在显示下一个之前隐藏.slides.

所以$(‘.幻灯片’).hide();应该在.show()命令之前,你只需显示你想要的那个,然后隐藏所有(包括你刚才展示的那个)

$('.prevIoUs').click(function() {
    $('.slides').hide();
    var prevIoUs = $(this).closest('.slides').prevAll('.slides').eq(0);
    if (prevIoUs.length === 0) prevIoUs = $(this).closest('.slides').nextAll('.slides').last();
    prevIoUs.show();
});

$('.next').click(function() {
    $('.slides').hide();
    var next = $(this).closest('.slides').nextAll('.slides').eq(0);
    if (next.length === 0) next = $(this).closest('.slides').prevAll('.slides').last();
    next.show();
});
原文链接:https://www.f2er.com/jquery/428542.html

猜你在找的jQuery相关文章