gpt4 book ai didi

javascript - 过滤由嵌套
  • 和子节点组成的 TreeView

转载 作者:行者123 更新时间:2023-11-29 17:58:00 25 4
gpt4 key购买 nike

很抱歉没有输入我处理过的代码。这次我把我的疑惑说清楚了。我有一棵由嵌套的 ul 和 li 标签组成的树。树节点名称是从数据库中获取的。我需要根据我在文本框中输入的名称来过滤树。在显示过滤树项时,如果过滤项是父节点,则还应列出子节点(即使它们与 texbox 中输入的文本不匹配。) 我引用了这个链接:
Filter multiple <ul> lists with jQuery

此链接帮助我通过在文本框中输入名称来过滤出树节点。但它的子节点不可见。请帮助我。请在下面找到我的代码:

function func(){
alert("Onclick function parent node...");}

function func1(){
alert("Onclick function child node...");}
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script>
$(document).ready(function() {

$('input[type="text"]').keyup(function(){

var filter = jQuery(this).val();
jQuery("ul li").each(function () {
if (jQuery(this).text().search(new RegExp(filter, "i")) < 0) {
jQuery(this).hide();
} else {
jQuery(this).show();
jQuery(this).children().show();
}
});
});

});
</script>
</head>

<body>
<input type="text" />

<ul class="mainlayer" id="category1">
<li class="layer1"><a href="#" onclick="func();">item1</a>
<ul>
<li class="layer2"><a href="#" onclick="func1();">hju11</a></li>
<li class="layer2"><a>kiu12</a></li>
</ul>
</li>
<li class="layer1"><a>item2</a></li>
<li class="layer1"><a> item3</a></li>
</ul>
</body>
</html>

提前致谢。

最佳答案

尝试这样的事情:

function func(){
alert("Onclick function parent node...");}

function func1(){
alert("Onclick function child node...");}
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<style>
.hide{
display:none;
}
</style>
<script>
$(document).ready(function() {

$('input[type="text"]').keyup(function(){

var filter = jQuery(this).val();
jQuery(".menu ul > li").removeClass("hide");
jQuery(".menu ul > li").removeClass("show");

jQuery(".menu ul > li").each(function () {
if (jQuery(this).text().search(new RegExp(filter, "i")) < 0 && !jQuery(this).hasClass('show')) {
jQuery(this).addClass('hide');
} else {
jQuery(this).addClass('show');
jQuery(this).find(' ul > li').addClass('show');

}
});
});

});
</script>
</head>

<body>
<input type="text" />

<div class="menu">
<ul class="mainlayer" id="category1">
<li class="layer1"><a href="#" onclick="func();">item1</a>
<ul>
<li class="layer2"><a href="#" onclick="func1();">hju11</a></li>
<li class="layer2"><a>kiu12</a></li>
</ul>
</li>
<li class="layer1"><a>item2</a></li>
<li class="layer1"><a> item3</a></li>
</ul>
</div>
</body>
</html>


更新

更新的代码片段,您可以根据需要更改 .menu

关于javascript - 过滤由嵌套 <ul> <li> 和子节点组成的 TreeView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37389492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com