jQuery zTree树插件简单使用教程

发布时间 - 2026-01-10 22:25:41    点击率:

前言

zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。
支持静态 和 Ajax 异步加载节点数据.
在开发中我们常需要用到树状的展示.

下载地址:zTree

静态zTree开发流程

引入资源

<link rel="stylesheet" href="../../../css/zTreeStyle/zTreeStyle.css" type="text/css">
<script type="text/javascript" src="../../../js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="../../../js/jquery.ztree.core.js"></script>

html元素

<div>
 <ul id="treeDemo" class="ztree"></ul>
</div>

JS方式一-简单json数据格式

<SCRIPT type="text/javascript">
  <!--
  var setting = {
   data: {
    simpleData: {
     enable: true
    }
   }
  };

  var zNodes =[
   { id:1, pId:0, name:"父节点1 - 展开", open:true},
   { id:11, pId:1, name:"父节点11 - 折叠"},
   { id:111, pId:11, name:"叶子节点111"},
   { id:112, pId:11, name:"叶子节点112"},
   { id:113, pId:11, name:"叶子节点113"},
   { id:114, pId:11, name:"叶子节点114"},
   { id:12, pId:1, name:"父节点12 - 折叠"},
   { id:121, pId:12, name:"叶子节点121"},
   { id:122, pId:12, name:"叶子节点122"},
   { id:123, pId:12, name:"叶子节点123"},
   { id:124, pId:12, name:"叶子节点124"},
   { id:13, pId:1, name:"父节点13 - 没有子节点", isParent:true},
   { id:2, pId:0, name:"父节点2 - 折叠"},
   { id:21, pId:2, name:"父节点21 - 展开", open:true},
   { id:211, pId:21, name:"叶子节点211"},
   { id:212, pId:21, name:"叶子节点212"},
   { id:213, pId:21, name:"叶子节点213"},
   { id:214, pId:21, name:"叶子节点214"},
   { id:22, pId:2, name:"父节点22 - 折叠"},
   { id:221, pId:22, name:"叶子节点221"},
   { id:222, pId:22, name:"叶子节点222"},
   { id:223, pId:22, name:"叶子节点223"},
   { id:224, pId:22, name:"叶子节点224"},
   { id:23, pId:2, name:"父节点23 - 折叠"},
   { id:231, pId:23, name:"叶子节点231"},
   { id:232, pId:23, name:"叶子节点232"},
   { id:233, pId:23, name:"叶子节点233"},
   { id:234, pId:23, name:"叶子节点234"},
   { id:3, pId:0, name:"父节点3 - 没有子节点", isParent:true}
  ];

  $(document).ready(function(){
   $.fn.zTree.init($("#treeDemo"), setting, zNodes);
  });
  //-->
 </SCRIPT>

JS方式二-标准json数据格式

<SCRIPT type="text/javascript">
  <!--
  var setting = { };

  var zNodes =[
   { name:"父节点1 - 展开", open:true,
    children: [
     { name:"父节点11 - 折叠",
      children: [
       { name:"叶子节点111"},
       { name:"叶子节点112"},
       { name:"叶子节点113"},
       { name:"叶子节点114"}
      ]},
     { name:"父节点12 - 折叠",
      children: [
       { name:"叶子节点121"},
       { name:"叶子节点122"},
       { name:"叶子节点123"},
       { name:"叶子节点124"}
      ]},
     { name:"父节点13 - 没有子节点", isParent:true}
    ]},
   { name:"父节点2 - 折叠",
    children: [
     { name:"父节点21 - 展开", open:true,
      children: [
       { name:"叶子节点211"},
       { name:"叶子节点212"},
       { name:"叶子节点213"},
       { name:"叶子节点214"}
      ]},
     { name:"父节点22 - 折叠",
      children: [
       { name:"叶子节点221"},
       { name:"叶子节点222"},
       { name:"叶子节点223"},
       { name:"叶子节点224"}
      ]},
     { name:"父节点23 - 折叠",
      children: [
       { name:"叶子节点231"},
       { name:"叶子节点232"},
       { name:"叶子节点233"},
       { name:"叶子节点234"}
      ]}
    ]},
   { name:"父节点3 - 没有子节点", isParent:true}

  ];

  $(document).ready(function(){
   $.fn.zTree.init($("#treeDemo"), setting, zNodes);
  });
  //-->
 </SCRIPT>

异步zTree加载

前面的配置相同,在此不再阐述.主要是js不同.

异步JS

var setting = {
 //可勾选
 check: {
   enable: true
  },
 data : {
  simpleData : {
   enable : true
  }
 }
};

 function initTree(){
  var payFreq = $("#payFreq").val();
  var fyType = $('#fyType').val();
  var setHzType = $('#setHzType').val();

  $.ajax({
   url : "/demo/initTree",
   data : {payFreq:payFreq,
     fyType:fyType,
     setHzType:setHzType
   },
   success: function(object){
    var nodes = "";
    //拼接simple格式的json字符串
    $.each(object.data, function(i,item) {
     nodes+="{id:'"+item.id+"', pId:'"+item.pid+"', name:'"+item.name+"', isParent:'"+item.isParent+"'},";
    });
    var zNodes = "["+nodes+"]";
    var json = eval('(' + zNodes + ')'); 
    //console.log(json);
    zTreeInit(json);
   }
  });

 }
 /* 初始化树 */
 function zTreeInit(json) {
  $.fn.zTree.init($("#treeDemo"), setting, json);
  var zTree = $.fn.zTree.getZTreeObj("treeDemo");
  //全部展开
  zTree.expandAll(true);
  //Y代表勾选时,N代表取消勾选 p代表父节点,s代表字节点
  setting.check.chkboxType = { "Y" : "ps", "N" : "ps" };

 }

java代码

Controller层

@RequestMapping("initTree")
 @ResponseBody
 public DataMessage initTree(String setHzType,String payFreq,String fyType){
  params.put("setHzType", setHzType);
  params.put("fyType", fyType);
  params.put("fkmattr_xt", fkmattr_xt);
  //获取treeinfo列表
  List<TreeInfo> treeInfos = feeTransferService.initTree(params);
  return DataMessage.successData(treeInfos);
 }

tree实体类

public class TreeInfo {

 private String id;
 private String pid;
 private String name;
 private String isParent;
 }

说明

更多实例可以参看zTree中文文档
或参见zTree GitHub 里面更多的示例和说明。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# jQuery  # zTree  # zTree jQuery 树插件的使用(实例讲解)  # jQuery zTree树插件动态加载实例代码  # jQuery树插件zTree使用方法详解  # Jquery树插件zTree实现菜单树  # 多功能jQuery树插件zTree实现权限列表简单实例  # Jquery树插件zTree用法入门教程  # jQuery zTree树插件的使用教程  # 勾选  # 是一个  # 加载  # 数据格式  # 在此  # 下载地址  # 树状  # 多功能  # 大家多多  # 主要是  # 文档  # 实体类  # id  # json  # SCRIPT  # data  # setting  # var  # color  # JS 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 香港服务器网站推广:SEO优化与外贸独立站搭建策略  南京网站制作费用,南京远驱官方网站?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  如何在搬瓦工VPS快速搭建网站?  开心动漫网站制作软件下载,十分开心动画为何停播?  怎么用AI帮你设计一套个性化的手机App图标?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  英语简历制作免费网站推荐,如何将简历翻译成英文?  油猴 教程,油猴搜脚本为什么会网页无法显示?  JavaScript实现Fly Bird小游戏  java ZXing生成二维码及条码实例分享  iOS中将个别页面强制横屏其他页面竖屏  如何在建站之星网店版论坛获取技术支持?  Python图片处理进阶教程_Pillow滤镜与图像增强  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  实现点击下箭头变上箭头来回切换的两种方法【推荐】  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  装修招标网站设计制作流程,装修招标流程?  如何在宝塔面板中修改默认建站目录?  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  javascript日期怎么处理_如何格式化输出  Laravel如何使用.env文件管理环境变量?(最佳实践)  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  教学论文网站制作软件有哪些,写论文用什么软件 ?  中山网站推广排名,中山信息港登录入口?  大同网页,大同瑞慈医院官网?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  Android自定义listview布局实现上拉加载下拉刷新功能  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  Laravel如何处理异常和错误?(Handler示例)  网页设计与网站制作内容,怎样注册网站?  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  进行网站优化必须要坚持的四大原则  如何在腾讯云服务器上快速搭建个人网站?  微信推文制作网站有哪些,怎么做微信推文,急?  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  Laravel模型事件有哪些_Laravel Model Event生命周期详解  Laravel Docker环境搭建教程_Laravel Sail使用指南  PythonWeb开发入门教程_Flask快速构建Web应用  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  如何在自有机房高效搭建专业网站?