JQUERY多个相同DIV嵌套如何遍历并点击显示?

代码如下

<div class="box">
    <div class="cate-content">
        <div class="cate-one">一级分类1</div>
        <div class="cate-list">
            <div class="list-item">
                <div class="cate-two">
                    <span>二级分类1-1</span>
                </div>
                <div class="cate-three">
                    <a>三级分类1-1</a>
                            ...
                    <a>三级分类1-n</a>
                </div>
            </div>
            <div class="list-item">
                <div class="cate-two">
                    <span>二级分类1-2</span>
                </div>
                <div class="cate-three">
                    <a>三级分类1-2-1</a>
                            ...
                    <a>三级分类1-2-n</a>
                </div>
            </div>
        </div>
    </div>
    <div class="cate-content">
        <div class="cate-one">一级分类2</div>
        <div class="cate-list">
            <div class="list-item">
                <div class="cate-two">
                    <span>二级分类2-1</span>
                </div>
                <div class="cate-three">
                    <a>三级分类2-1-1</a>
                            ...
                    <a>三级分类2-1-n</a>
                </div>
            </div>
            <div class="list-item">
                <div class="cate-two">
                    <span>二级分类2-2</span>
                </div>
                <div class="cate-three">
                    <a>三级分类2-2-1</a>
                            ...
                    <a>三级分类2-2-n</a>
                </div>
            </div>
        </div>
    </div>
</div>

目前一级分类和二级分类都是默认显示的,三级分类不显示,点击二级分类显示三级分类。想要实现的效果是,比如,点击上面代码里的“二级分类1-1”,添加toggleClass'show'(再次点击也能隐藏)显示三级分类“cate-three”三级分类1-1,点击“二级分类1-2”,显示“三级分类1-2-1”并隐藏去除class'show'三级分类1-1,点击“二级分类2-1”,隐藏三级分类1-2-1(去除class'show'),并显示“三级分类2-1-1”添加toggleClass'show',就是这样。

我弄了一上午,只能弄到在同级之间切换,如果跳到下个分类,上面的那个三级分类还是显示。实在想不出办法了,特来此处寻求解决。先谢谢啦!~

我写的JQUERY如下:

$('.cate-content').find('.cate-two').each(function(){
        $(this).click(function(){
            $(this).parent().toggleClass('show').siblings().removeClass('show');
        });
    });
阅读 3.5k
1 个回答

只要点了二级分类,除了属于当前分类的三级分类,其它的三级分类都隐藏。这个功能描述没问题吧

$('.cate-two').click(function(){
    var nowItem = $(this);
    if(nowItem.hasClass('show')){
       //当前三级分类已展开,就隐藏三级分类
       nowItem.next().removeClass('show');
    }else{
       $('.cate-three').removeClass('show');
       nowItem.next().addClass('show');
    }
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进