<style>
.search-term {
background-color:yellow;
}
</style>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery.fancytree/2.38.2/skin-win8/ui.fancytree.min.css" integrity="sha512-MDYrzSajmNeJrqH4YNzdIEhhQgFKSa06KJYmcbfK3dEwvureKSjAYlcS1fgnuUb0YPwEFTg+NAFaK6sOE6hF6Q==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.fancytree/2.38.2/jquery.fancytree-all-deps.min.js" integrity="sha512-8Fstaj+d8Fha0qzgW/bGQpyG4NcVSYcmflfYOzhV1z/4/SYwf96rqrANH+lUmO7ZSq9WgRDYgASFiiq20bgK7g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script>
function collapseAllTrees() {
$("#tree").fancytree("getRootNode").visit(function(node) {
node.setExpanded(false);
node.setSelected(false);
node.removeClass("search-term");
});
}
function searchTree() {
var searchTerm = $("#search-input").val();
$("#tree").fancytree("getTree").filterNodes(searchTerm, {
autoExpand: true,
});
$("#tree").fancytree("getTree").visit(function(node) {
if (node.title.includes(searchTerm)) {
node.addClass("search-term");
}else{
node.removeClass("search-term");
}
});
}
</script>
<input type="text" id="search-input" placeholder="검색...">
<button id="search-button">검색</button>
<button id="collapse-button">초기화</button>
<div id="tree" style="height: 300px;"></div>
<script>
$("#tree").fancytree({
activeVisible: true,
autoActivate: true,
checkbox: true,
icon: false,
selectMode: 3,
debugLevel: 4,
filter: {
mode: "hide"
},
source: [
{
title: "융합대학",
key: "1",
folder: true,
children: [{
title: "학과명1",
key: "1.1"
}, {
title: "학과명2",
key: "1.2"
}]
},
{
title: "간호대학",
key: "2",
folder: true,
children: [{
title: "학과명1",
key: "2.1"
}, {
title: "학과명2",
key: "2.2"
}]
},
{
title: "대학",
key: "3",
folder: true,
children: [{
title: "융합전공1",
key: "3.1"
}, {
title: "융합전공2",
key: "3.2"
}]
}
]
});
$("#collapse-button").on("click", function() {
$("#search-input").val("");
collapseAllTrees();
});
$("#search-button").on("click", function() {
if($("#search-input").val()){
searchTree();
}else{
collapseAllTrees();
}
});
$("#search-input").on("keyup", function() {
if($("#search-input").val()){
searchTree();
}else{
collapseAllTrees();
}
});
</script>