返回顶部
首页 > 资讯 > 精选 >如何使用JS动态构建目录树
  • 233
分享到

如何使用JS动态构建目录树

2023-06-26 04:06:26 233人浏览 泡泡鱼
摘要

本篇文章给大家分享的是有关如何使用js动态构建目录树,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在使用frameset布局的时候,经常会用到目录树,我们可以把一棵树写死,但是

本篇文章给大家分享的是有关如何使用js动态构建目录树,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

在使用frameset布局的时候,经常会用到目录树,我们可以把一棵树写死,但是更多的情况是,这棵树需要随时被改动,所以我们期望的是他能够被动态的构建。

mvc,算是了解一点,那下面就把这棵树根据M-V-C给拆开分解吧。

如何使用JS动态构建目录树

下面就来看看这棵树是怎么构建的。

Module [数据层]

var tree = {            "id": 0,            "a1": {                "id": 1,                "name": "a1",                "children": {                    "b1": "b1_1",                    "b2": "b1_2",                    "b3": "b1_3"                }               },            "a2": {                "id": 1,                "name": "a2",                "children": {}            },            "a3": {                "id": 1,                "name": "a3",                "children": {                    "b1": "b3_1",                    "b2": "b3_2",                    "b3": "b3_3"                }            }        };

这是一颗两层的目录树,用ID来表示层级关系,name来表示改层的名字(也就是节点Text内容吧)。

Control [控制层]

var Tree = function ( module ){    function createnodeList( obj ) {        //创建ul节点和documentFragmeng中间变量        var n = document.createElement("ul"),            docfrag = document.createDocumentFragment();        //判断obj是根节点还是孩子节点        if(obj.id == 0) {            n.setAttribute("class", "tree_0");            for(var key in obj) {                if(key == "id") continue;                //将节点插入                var c = document.createElement("li"),                    span = document.createElement("span");                span.appendChild(document.createTextNode( obj[key].name ));                c.appendChild(span);                docfrag.appendChild( c );            }        }else if(obj.id && obj.id == 1) {            n.setAttribute("class", "tree_1");            for(var key in obj) {                if(key == "id" || key == "name" || !obj.children) continue;                for( var item in obj.children){                    //将节点插入                    var c = document.createElement("li");                    c.appendChild(document.createTextNode( obj.children[item] ));                    docfrag.appendChild( c );                }            }        }        n.appendChild( docfrag );        //返回开始构建的ul节点        return n;    }    //隐藏及显示 工具函数    function toggle(c){        c.style.display = ((c.style.display == "none") ? "" : "none");    }    function createTree( obj ) {        var root, child, count = 0;        root = createNodeList( obj );        for(var key in obj){            if(obj[key] == "id" || !obj[key].children) continue;            child = createNodeList(obj[key]);            root.children[count].appendChild( child );            //count来判断插入的位置            count++;        }        return root;    }    var T = createTree(module);    var list = T.children;    for(var i = 0, len = list.length; i < len; i++){        list[i].getElementsByTagName("span")[0].onclick = function(){            var obj = this.nextSibling;            toggle(obj);        }    }    return T;}

这里边创建了三个函数,其中

createNodeList() //适用于构建一个树子节点

其中使用documentFragment作为一个节点缓存器,先把节点放置到documentFragment中,然后统一插入到ul,这也是比较常用的使用方式。

createTree() //构建一棵树

基本整棵树的构建就是分为这两步,前者负责创建一个子节点,后者构建一棵树。

在这颗树中绑定了click事件,让其可以折叠,当然也可以在Tree这个类里绑定更多的方法,这个就靠自己发挥了。

View [视图层]

window.onload = function(){    var T = new Tree(tree);    document.getElementsByTagName("body")[0].appendChild(T);}

整棵树的构建,主要用到的是DOM元素的处理,这个必须牢牢掌握!

以上就是如何使用JS动态构建目录树,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: 如何使用JS动态构建目录树

本文链接: https://lsjlt.com/news/306901.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用JS动态构建目录树
    本篇文章给大家分享的是有关如何使用JS动态构建目录树,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在使用frameset布局的时候,经常会用到目录树,我们可以把一棵树写死,但是...
    99+
    2023-06-26
  • 使用JS动态构建目录树
    在使用frameset布局的时候,经常会用到目录树,我们可以把一棵树写死,但是更多的情况是,这棵树需要随时被改动,所以我们期望的是他能够被动态的构建。 MVC,算是了解一点,那本文就...
    99+
    2024-04-02
  • linux如何创建目录树
    这篇文章主要为大家展示了“linux如何创建目录树”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux如何创建目录树”这篇文章吧。创建目录树你可以用mkdir加上-p选项一次创建一颗目录树:...
    99+
    2023-06-27
  • js如何使用动态键进行对象解构
    这篇文章主要介绍了js如何使用动态键进行对象解构,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用动态键进行对象解构我们知道在对象解构时,可以使用 : 来对解构的属性进行重命...
    99+
    2023-06-27
  • linux如何创建一个目录树
    ...
    99+
    2024-04-02
  • JS如何动态创建元素
    这篇文章主要介绍了JS如何动态创建元素的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS如何动态创建元素文章都会有所收获,下面我们一起来看看吧。一、字符串拼接形式    为了更好的...
    99+
    2023-07-04
  • 如何使用JS动态显示文本
    这篇文章主要介绍了如何使用JS动态显示文本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。index.html:<!DOCTYPE&nb...
    99+
    2024-04-02
  • c语言如何构建一个静态二叉树
    这篇文章主要介绍“c语言如何构建一个静态二叉树”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“c语言如何构建一个静态二叉树”文章能帮助大家解决问题。第一、树的构建定义树结构struct BT...
    99+
    2023-06-16
  • 如何使用idea构建springmvc项目
    这篇“如何使用idea构建springmvc项目”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这...
    99+
    2024-04-02
  • C#如何构建动态SQL查询
    在C#中构建动态SQL查询可以使用字符串拼接的方式或者使用参数化查询。以下是一个使用参数化查询的示例: using System; ...
    99+
    2024-04-29
    SQL C#
  • 如何利用JavaScript构建树形图
    这篇“如何利用JavaScript构建树形图”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何利用JavaScript构建树...
    99+
    2023-07-02
  • linux如何显示文件和目录由根目录开始的树形结构
    ...
    99+
    2024-04-02
  • 使用动态段构建休息请求
    亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《使用动态段构建休息请求》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。问题内容我正在尝试测...
    99+
    2024-04-04
  • Golang动态库使用指南:如何创建和使用动态库?
    Golang是一种强大的编程语言,它不仅可以用于开发应用程序,还可以用于创建动态库。通过使用动态库,我们可以将一些常用的功能封装在库中,以便在不同的项目中重复使用。本文将介绍如何在Go...
    99+
    2024-02-29
    动态库 golang 使用指南
  • 如何使用shell创建日期目录
    这篇文章主要介绍如何使用shell创建日期目录,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!需要在多个目录中 (如:beijing shanghai tianjin guangzhou 等等) 创建子目录(以年份命名...
    99+
    2023-06-09
  • 如何使用Vue递归组件构建树形菜单
    今天小编给大家分享一下如何使用Vue递归组件构建树形菜单的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在Vue.js中一个递...
    99+
    2023-07-04
  • 怎么在Ubuntu系统上使用Samba4创建活动目录架构
    这篇文章主要介绍“怎么在Ubuntu系统上使用Samba4创建活动目录架构”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么在Ubuntu系统上使用Samba4创建活动目录架构”文章能帮助大家解决问...
    99+
    2023-06-28
  • js如何使用IIFE结构
    小编给大家分享一下js如何使用IIFE结构,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!IIFE别被上面的函数搞晕,换个姿势:以上是“js如何使用IIFE结构”这...
    99+
    2023-06-27
  • 如何使用JavaScript实现树结构
    这篇文章主要为大家展示了“如何使用JavaScript实现树结构”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用JavaScript实现树结构”这篇文章吧...
    99+
    2024-04-02
  • cmd中如何使用dir结构树
    这篇文章将为大家详细讲解有关cmd中如何使用dir结构树显示代码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下:@rem 此BAT文件名一定不能是"tree.bat",否则tr...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作