Javascript 如何隐藏父项<;李>;如果所有子项都隐藏在jquery中
我是Jquery新手 我的网页结构是这样的Javascript 如何隐藏父项<;李>;如果所有子项都隐藏在jquery中,javascript,jquery,Javascript,Jquery,我是Jquery新手 我的网页结构是这样的 <div id="MenuSection"> <ul> <li>Master // Main Menu <ul> <li>Master1</li> <li>Master2</li> <l
<div id="MenuSection">
<ul>
<li>Master // Main Menu
<ul>
<li>Master1</li>
<li>Master2</li>
<li>Master3</li>
</ul>
</li>
<li>Transaction // Main Menu
<ul>
<li>Transaction1</li>
<li>Transaction2</li>
<li>Transaction3</li>
</ul>
</li>
<li>Report // Main Menu
<ul>
<li>Report1</li>
<li>Report2</li>
<li>Report3</li>
</ul>
</li>
</ul>
</div>
- 主/主菜单
- 大师1
- 大师2
- 大师3
- 事务//主菜单
- 交易1
- 交易2
- 交易3
- 报告//主菜单
- 报告1
- 报告2
- 报告3
我希望当任何父项(主菜单)的所有子项都被隐藏时,父项也应该被隐藏。假设Report1、Report2、Report3是隐藏的,那么“Report”的父级也应该是隐藏的
如何通过Jquery实现这一点?一种方法是迭代每个主菜单
li
,查看其子菜单是否都是:
还有其他方法可以做到这一点,比如使用.filter或.map,但这应该可以满足您的需要
给定嵌套的ul
,上面使用
确保只处理直接ul>li
子级。如果您有多个级别,则可能需要相应地更改,例如第一个:菜单操作li
将应用于所有li
s,第二个。find(“>ul>li:visible”)
只查看直接li
子级
$(“#菜单操作>ul>li”)。每个(函数(){
if($(this).find(“li:visible”).length==0){
$(this.hide();
}
});代码>
- 主人
- 大师1
- 大师2
- 大师3
- 交易
- 交易1
- 交易2
- 交易3
- 报告
一种方法是迭代每个主菜单li
,查看其子菜单是否都是:
还有其他方法可以做到这一点,比如使用.filter或.map,但这应该可以满足您的需要
给定嵌套的ul
,上面使用
确保只处理直接ul>li
子级。如果您有多个级别,则可能需要相应地更改,例如第一个:菜单操作li
将应用于所有li
s,第二个。find(“>ul>li:visible”)
只查看直接li
子级
$(“#菜单操作>ul>li”)。每个(函数(){
if($(this).find(“li:visible”).length==0){
$(this.hide();
}
});代码>
- 主人
- 大师1
- 大师2
- 大师3
- 交易
- 交易1
- 交易2
- 交易3
- 报告
JavaScript相当容易做到这一点。每次隐藏或显示列表项时,都需要在此基础上展开以在相关列表上执行此检查
function isHidden(array) {
for(var i = 0; i < array.length - 1; i++) {
if(array[i+1].style.display != "none") {
return false;
};
};
return true;
};
var children = document.getElementById("report").getElementsByTagName("LI");
if (isHidden(children)) {
document.getElementById("report").style.display = "none";
};
函数isHidden(数组){
对于(var i=0;i
JavaScript相当容易做到这一点。每次隐藏或显示列表项时,都需要在此基础上展开以在相关列表上执行此检查
function isHidden(array) {
for(var i = 0; i < array.length - 1; i++) {
if(array[i+1].style.display != "none") {
return false;
};
};
return true;
};
var children = document.getElementById("report").getElementsByTagName("LI");
if (isHidden(children)) {
document.getElementById("report").style.display = "none";
};
函数isHidden(数组){
对于(var i=0;i
您可以使用
参见代码:
(函数($){
$(文档).ready(函数(){
var$mainLinks=$('#菜单操作>ul>li');
$.each($mainLinks,function(){
if(!$(this.find('li')。是(':visible')){
$(this.hide();
}
});
});
})(jQuery)代码>
#菜单操作>ul>li:最后一个孩子li{
显示:无;
}
#菜单操作>ul>li:第一个孩子li:第一个孩子{
显示:无;
}
- 主/主菜单
- 大师1
- 大师2
- 大师3
- 事务//主菜单
- 交易1
- 交易2
- 交易3
- 报告//主菜单
- 报告1
- 报告2
- 报告3
您可以使用
参见代码:
(函数($){
$(文档).ready(函数(){
var$mainLinks=$('#菜单操作>ul>li');
$.each($mainLinks,function(){
if(!$(this.find('li')。是(':visible')){
$(this.hide();
}
});
});
})(jQuery)代码>
#菜单操作>ul>li:最后一个孩子li{
显示:无;
}
#菜单操作>ul>li:第一个孩子li:第一个孩子{
显示:无;
}
- 主/主菜单
- 大师1
- 大师2
- 大师3
- 事务//主菜单