JS实现多级栏目隐藏、显示功能(主要用递归方法隐藏主栏目所有的子栏目及子栏目的子栏目)

1 篇文章 0 订阅

当栏目存在多级时,当点击主栏目,只会隐藏它的一级子栏目,使用递归法,就可以隐藏主栏目所有的子栏目。

 //当点击某一栏目时,关闭或显示它的所有子栏目,注意:关闭时是关闭它的子栏目及子栏目的子栏目。
    $("span.typcn").click(function () {
        var arr =[];//定义一个空数组存放所有子栏目id
        var id =$(this).parents("tr").attr("id");//先得到顶级栏目id
        all(id);//通过顶级栏目id,遍历所有子栏目id

        if($(this).hasClass("typcn-arrow-down-thick")){

            $("tr[pid="+id+"]").show();
            $(this).removeClass("typcn-arrow-down-thick");
            $(this).addClass("typcn-arrow-right-thick");
        }else{
            //遍历所有子栏目,然后隐藏
            for(var j=0;j<arr.length;j++){
                $("tr[id="+arr[j]+"]").hide();
                $(this).removeClass("typcn-arrow-right-thick");
                $(this).addClass("typcn-arrow-down-thick");
            }

        }
        //递归找出所有子栏目
        function all(id) {
            $("tr[pid="+id+"]").each(function () {
                arr.push($(this).attr("id"));
                all($(this).attr("id"));
            });
            return arr;

        }
    });
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值