树形结构渲染

今天终于得空了,正好有朋友问我树形数据结构如何渲染,我在网上给他搜简单易懂的 发现好多意思不够简明
我就写了一个递归小方法方便大家理解,之后自己需要什么就拿去改一改就好了 俗话说得好 前端就是粘粘黏黏。

我们的口号是 我们不生产代码 我们只是代码的搬运工 !!!!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>树形结构</title>
</head>
<body>
    <div id="dom"></div>
    <script>
        // 模仿一下假数据
        let arr=[
            {
                title:"一级0",
                name:"mingzi",
                child:[
                   {
                    title:"二级",
                    name:"erji",
                    child:[
                        {
                            title:"三级",
                            name:"sanji",
                        },
                        {
                            title:"三级",
                            name:"sanji",
                        },
                        {
                            title:"三级",
                            name:"sanji",
                        },
                    ]
                   },
                   {
                    title:"二级",
                    name:"erji",
                   },
                   {
                    title:"二级",
                    name:"erji",
                   },
                   {
                    title:"二级",
                    name:"erji",
                   },
                   {
                    title:"二级",
                    name:"erji",
                   },
                ]
            },
            {
                title:"一级1",
                name:"mingzi",
            },
            {
                title:"一级2",
                name:"mingzi",
            },
            {
                title:"一级3",
                name:"mingzi",
            },
            {
                title:"一级4",
                name:"mingzi",
            },
        ];
        // 递归渲染方法
        function jiegou(arr){
            let html=""; //每次都创建一个空值
            arr.forEach(item => {
                if(item.child){ //有下级   需要调本函数再次处理 直到没有下级
                    html+= `<div  style="margin-left:20px" >${item.title}
                                ${jiegou(item.child)}
                            </div>`
                }else{//没有下级 直接渲染结构
                    html+= `<div  style="margin-left:20px" >${item.title}</div>`
                }
            });
            return html //处理完的结果输出
        };
        // 数据插入页面结构中
        let dom=document.getElementById("dom");
        dom.innerHTML = jiegou(arr)
    </script>
</body>
</html>
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值