layui.tree組件的使用以及搜索節(jié)點(diǎn)功能的實(shí)現(xiàn)
由于項(xiàng)目樹(shù)形節(jié)點(diǎn)比較多需要增加節(jié)點(diǎn)搜索功能,所以研究了一下加上社區(qū)伙伴的支持,目前功能可以簡(jiǎn)單實(shí)現(xiàn)但細(xì)節(jié)還需要修改,添加上了組件的基本使用方法和屬性,現(xiàn)在分享出來(lái)~
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 //是否開(kāi)啟連接線
,edit: ['add', 'update', 'del'] //開(kāi)啟操作節(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; //無(wú)搜索值返回
}
elem.filter(':contains(' + name + ')').css('color', '#FFB800'); //搜索文本并設(shè)置標(biāo)志顏色
elem.parents('.layui-tree-pack').prev().find('.layui-tree-iconClick').click(); //展開(kāi)選項(xiàng)
//console.log(elem);
})
});
效果如圖:

搜索功能還有待完善,希望做過(guò)類似功能的伙伴多多溝通和分享~
以上這篇layui.tree組件的使用以及搜索節(jié)點(diǎn)功能的實(shí)現(xiàn)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JS實(shí)現(xiàn)駝峰字符串轉(zhuǎn)下劃線字符串的三種方法
這篇文章主要介紹了js下劃線和駝峰互相轉(zhuǎn)換的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2023-11-11
詳細(xì)聊聊JavaScript是如何影響DOM樹(shù)構(gòu)建的
DOM (Document Object Model) 的全稱是文檔對(duì)象模型,它可以以一種獨(dú)立于平臺(tái)和語(yǔ)言的方式訪問(wèn)和修改一個(gè)文檔的內(nèi)容和結(jié)構(gòu),這篇文章主要給大家介紹了關(guān)于JavaScript是如何影響DOM樹(shù)構(gòu)建的相關(guān)資料,需要的朋友可以參考下2021-08-08
JS復(fù)制內(nèi)容到剪切板的實(shí)例代碼(兼容IE與火狐)
這篇文章主要介紹了JS復(fù)制內(nèi)容到剪切板的實(shí)例代碼(兼容IE與火狐)。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-11-11
JavaScript setinterval延遲一秒解決方案
這篇文章主要介紹了JavaScript setinterval延遲一秒解決方案,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09
JavaScript獲取對(duì)象在頁(yè)面中位置坐標(biāo)的方法
這篇文章主要介紹了JavaScript獲取對(duì)象在頁(yè)面中位置坐標(biāo)的方法,涉及JavaScript操作頁(yè)面元素屬性的相關(guān)技巧,需要的朋友可以參考下2016-02-02

