layui.tree組件的使用以及搜索節(jié)點(diǎn)功能的實(shí)現(xiàn)
由于項(xiàng)目樹形節(jié)點(diǎn)比較多需要增加節(jié)點(diǎn)搜索功能,所以研究了一下加上社區(qū)伙伴的支持,目前功能可以簡單實(shí)現(xiàn)但細(xì)節(jié)還需要修改,添加上了組件的基本使用方法和屬性,現(xiàn)在分享出來~
HTML:
<div class="layui-btn-container">
<button class="layui-btn layui-btn-sm" type="button" lay-demo="getChecked">獲取選中節(jié)點(diǎn)數(shù)據(jù)</button>
<button class="layui-btn layui-btn-sm" type="button" lay-demo="setChecked">勾選指定節(jié)點(diǎn)</button>
<button class="layui-btn layui-btn-sm" type="button" lay-demo="reload">重載實(shí)例</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
//模擬數(shù)據(jù)
,data1 = [{
title: '江西'
,id: 1
,children: [{
title: '南昌'
,id: 1000
,children: [{
title: '青山湖區(qū)'
,id: 10001
},{
title: '高新區(qū)'
,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: '四川(可跳轉(zhuǎn))'
,id: 4
,href: 'https://www.layui.com/'
,children: [{
title: '成都'
,id: 3000
,checked: true //默認(rèn)選中
},{
title: '雅安'
,id: 3001
}]
}];
//常規(guī)用法
tree.render({
elem: '#test1' //默認(rèn)是點(diǎn)擊節(jié)點(diǎn)可進(jìn)行收縮
,data: data1
,id: 'demoId1'
,showCheckbox: true //是否顯示復(fù)選框
,isJump: true //是否允許點(diǎn)擊節(jié)點(diǎn)時(shí)彈出新窗口跳轉(zhuǎn)
,showLine: true //是否開啟連接線
,edit: ['add', 'update', 'del'] //開啟操作節(jié)點(diǎn)的圖標(biāo)
,click: function(obj){
var data = obj.data; //獲取當(dāng)前點(diǎn)擊的節(jié)點(diǎn)數(shù)據(jù)
layer.msg('狀態(tài):'+ obj.state + '<br>節(jié)點(diǎn)數(shù)據(jù):' + JSON.stringify(data));
}
});
//按鈕事件
util.event('lay-demo', {
getChecked: function(othis){
var checkedData = tree.getChecked('demoId1'); //獲取選中節(jié)點(diǎn)的數(shù)據(jù)
layer.alert(JSON.stringify(checkedData), {shade:0});
console.log(checkedData);
}
,setChecked: function(){
tree.setChecked('demoId1', [3, 4]); //勾選指定節(jié)點(diǎn)
}
,reload: function(){
//重載實(shí)例
tree.reload('demoId1', {});
}
});
//搜索節(jié)點(diǎn)值
$('#btn_query').click(function () {
var name = $("#tree_name").val(); //搜索值
var elem = $("#test1").find('.layui-tree-txt').css('color', ''); //搜索文本與設(shè)置默認(rèn)顏色
if (!name) {
return; //無搜索值返回
}
elem.filter(':contains(' + name + ')').css('color', '#FFB800'); //搜索文本并設(shè)置標(biāo)志顏色
elem.parents('.layui-tree-pack').prev().find('.layui-tree-iconClick').click(); //展開選項(xiàng)
//console.log(elem);
})
});
效果如圖:

搜索功能還有待完善,希望做過類似功能的伙伴多多溝通和分享~
以上這篇layui.tree組件的使用以及搜索節(jié)點(diǎn)功能的實(shí)現(xiàn)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
uni-app小程序中父組件和子組件傳值的實(shí)現(xiàn)實(shí)例
uniapp父子組件引用傳值,和vue的一樣,沒有小程序那樣的麻煩,下面這篇文章主要給大家介紹了關(guān)于uni-app小程序中父組件和子組件傳值的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
JS中JSON對象和String之間的互轉(zhuǎn)及處理技巧
JSON:JavaScript 對象表示法(JavaScript Object Notation),其實(shí)JSON就是一個(gè)JavaScript的對象(Object)而已。接下來通過本文給大家介紹JS中JSON對象和String之間的互轉(zhuǎn)及處理技巧,需要的朋友一起學(xué)習(xí)吧2016-04-04
javascript實(shí)現(xiàn)日期按月份加減
JavaScript實(shí)現(xiàn)日期加減計(jì)算功能代碼實(shí)例,因?yàn)樵趈s中沒有類似C#中的AddDays方法,所以要想實(shí)現(xiàn)日期加減的話,就需要自己寫函數(shù)來實(shí)現(xiàn)。這里分享給大家,有需要的小伙伴可以參考下2015-05-05
Js實(shí)現(xiàn)中國公民身份證號碼有效性驗(yàn)證實(shí)例代碼
這篇文章主要介紹了Js實(shí)現(xiàn)中國公民身份證號碼有效性驗(yàn)證實(shí)例代碼,可以識(shí)別身份證號碼的正確性,有興趣的可以了解一下2017-05-05
boostrapTable的refresh和refreshOptions區(qū)別淺析
在使用bootstrapTable時(shí),刷新數(shù)據(jù)有兩個(gè)方法refresh、refreshOptions,在其用法上有點(diǎn)區(qū)別,接下來通過本文給大家分享boostrapTable的refresh和refreshOptions的區(qū)別,需要的朋友可以參考下2017-01-01
Jquery作者John Resig自己封裝的javascript 常用函數(shù)
Jquery作者John Resig自己封裝的常用函數(shù), 大家可以參考下。2009-11-11
fastadmin如何讓后臺(tái)的日期顯示成年月日格式(推薦)
FastAdmin是一款基于ThinkPHP5+Bootstrap的極速后臺(tái)開發(fā)框架,本文給大家介紹fastadmin的后臺(tái)時(shí)間戳字段如何顯示成年月日的日期格式,感興趣的朋友跟隨小編一起看看吧2023-10-10

