layui.tree组件的使用以及搜索节点功能的实现

 更新时间:2019年09月26日 11:34:23   作者:王王王大胆  
今天小编就为大家分享一篇layui.tree组件的使用以及搜索节点功能的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

由于项目树形节点比较多需要增加节点搜索功能,所以研究了一下加上社区伙伴的支持,目前功能可以简单实现但细节还需要修改,添加上了组件的基本使用方法和属性,现在分享出来~

HTML:

<div class="layui-btn-container">
  <button class="layui-btn layui-btn-sm" type="button" lay-demo="getChecked">获取选中节点数据</button>
  <button class="layui-btn layui-btn-sm" type="button" lay-demo="setChecked">勾选指定节点</button>
  <button class="layui-btn layui-btn-sm" type="button" lay-demo="reload">重载实例</button>
</div>
<div class="demoTable">
  <div class="layui-inline">
    <input type="text" class="layui-input" id="tree_name" autocomplete="off" />
  </div>
  <button class="layui-btn" id="btn_query">搜索</button>
</div>
<div id="test1" class="demo-tree demo-tree-box"></div>

JavaScript:

layui.use(['tree', 'util'], function(){
    var $ = layui.$;
    var tree = layui.tree
        ,layer = layui.layer
        ,util = layui.util
    //模拟数据
        ,data1 = [{
          title: '江西'
          ,id: 1
          ,children: [{
            title: '南昌'
            ,id: 1000
            ,children: [{
              title: '青山湖区'
              ,id: 10001
            },{
              title: '高新区'
              ,id: 10002
            }]
          },{
            title: '九江'
            ,id: 1001
          },{
            title: '赣州'
            ,id: 1002
          }]
        },{
          title: '广西'
          ,id: 2
          ,children: [{
            title: '南宁'
            ,id: 2000
          },{
            title: '桂林'
            ,id: 2001
          }]
        },{
          title: '陕西'
          ,id: 3
          ,children: [{
            title: '西安'
            ,id: 3000
          },{
            title: '延安'
            ,id: 3001
          }]
        },{
          title: '四川(可跳转)'
          ,id: 4
          ,href: 'https://www.layui.com/'
          ,children: [{
            title: '成都'
            ,id: 3000
            ,checked: true //默认选中
          },{
            title: '雅安'
            ,id: 3001
          }]
        }];
 
    //常规用法
    tree.render({
      elem: '#test1' //默认是点击节点可进行收缩
      ,data: data1
      ,id: 'demoId1'
      ,showCheckbox: true //是否显示复选框
      ,isJump: true //是否允许点击节点时弹出新窗口跳转
      ,showLine: true //是否开启连接线
      ,edit: ['add', 'update', 'del'] //开启操作节点的图标
      ,click: function(obj){
        var data = obj.data; //获取当前点击的节点数据
        layer.msg('状态:'+ obj.state + '<br>节点数据:' + JSON.stringify(data));
      }
    });
 
    //按钮事件
    util.event('lay-demo', {
      getChecked: function(othis){
        var checkedData = tree.getChecked('demoId1'); //获取选中节点的数据
 
        layer.alert(JSON.stringify(checkedData), {shade:0});
        console.log(checkedData);
      }
      ,setChecked: function(){
        tree.setChecked('demoId1', [3, 4]); //勾选指定节点
      }
      ,reload: function(){
        //重载实例
        tree.reload('demoId1', {});
      }
    });
 
    //搜索节点值
    $('#btn_query').click(function () {
      var name = $("#tree_name").val(); //搜索值
      var elem = $("#test1").find('.layui-tree-txt').css('color', ''); //搜索文本与设置默认颜色
      if (!name) {
        return; //无搜索值返回
      }
      elem.filter(':contains(' + name + ')').css('color', '#FFB800'); //搜索文本并设置标志颜色
      elem.parents('.layui-tree-pack').prev().find('.layui-tree-iconClick').click(); //展开选项
      //console.log(elem);
    })
 
  });

效果如图:

搜索功能还有待完善,希望做过类似功能的伙伴多多沟通和分享~

以上这篇layui.tree组件的使用以及搜索节点功能的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 原生js自定义右键菜单

    原生js自定义右键菜单

    这篇文章主要为大家详细介绍了原生js自定义右键菜单,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • JS实现驼峰字符串转下划线字符串的三种方法

    JS实现驼峰字符串转下划线字符串的三种方法

    这篇文章主要介绍了js下划线和驼峰互相转换的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2023-11-11
  • 详细聊聊JavaScript是如何影响DOM树构建的

    详细聊聊JavaScript是如何影响DOM树构建的

    DOM (Document Object Model) 的全称是文档对象模型,它可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构,这篇文章主要给大家介绍了关于JavaScript是如何影响DOM树构建的相关资料,需要的朋友可以参考下
    2021-08-08
  • javascript:void(0)使用探讨

    javascript:void(0)使用探讨

    如果想做一个链接点击后不做任何事情,或者响应点击而完成其他事情一般都是设置属性href = "#"其实还有比这更好的方法,下面为大家整理了几种比较常见的解决方法,感兴趣的朋友可以参考下
    2013-08-08
  • XmlUtils JS操作XML工具类

    XmlUtils JS操作XML工具类

    经常用到对xml的操作,Java里面有dom和dom4j等工具类,但是Javascript就没有,所以自己写了一个,目前算作第一个版本吧。肯定还有很多地方需要改进,如果有需要用的朋友,可以把bug和需要完善改进的地方留言或评论。
    2009-10-10
  • JS复制内容到剪切板的实例代码(兼容IE与火狐)

    JS复制内容到剪切板的实例代码(兼容IE与火狐)

    这篇文章主要介绍了JS复制内容到剪切板的实例代码(兼容IE与火狐)。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • JavaScript setinterval延迟一秒解决方案

    JavaScript setinterval延迟一秒解决方案

    这篇文章主要介绍了JavaScript setinterval延迟一秒解决方案,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • JavaScript获取对象在页面中位置坐标的方法

    JavaScript获取对象在页面中位置坐标的方法

    这篇文章主要介绍了JavaScript获取对象在页面中位置坐标的方法,涉及JavaScript操作页面元素属性的相关技巧,需要的朋友可以参考下
    2016-02-02
  • JavaScript删除指定子元素代码实例

    JavaScript删除指定子元素代码实例

    这篇文章主要介绍了JavaScript删除指定子元素代码实例,本文给出了代码实例和实现代码解释,需要的朋友可以参考下
    2015-01-01
  • JS判断变量是否为空判断是否null

    JS判断变量是否为空判断是否null

    本节主要介绍了JS判断变量是否为空是否null的方法,需要的朋友可以参考下
    2014-07-07

最新评论