我有这样的导航的html结构。它正在动态创建导航。
<div class="main">
<ul>
<li>
<a href="">Media Centre</a>
<div class="cbp-hrsub">
<div class="cbp-hrsub-inner">
<div>
<ul>
<li><a href="">Vision And Mission</a></li>
<li><a href="">Strategic Goals</a></li>
<li><a href="">Task of the Department</a></li>
</ul>
</div>
<div>
</div>
</div>
</div>
</li>
<li><a href="">Contact</a>
<div class="cbp-hrsub">
<div class="cbp-hrsub-inner">
<div>
<ul>
</ul>
</div>
<div>
</div>
</div>
</div>
</li>
</ul>
</div>
在这里,第一个具有ul和li子项的li(子菜单)。但是第二个li没有子菜单,但是div显示在前端。菜单和子菜单以编程方式出现,因此我无法删除div
cbp-hrsub
。当li没有孩子时,我需要不更改div显示。我试过了:
<script type="text/C#">
$(document).ready(function(){
$('.main ul>li>a').mouseover(function(){
if($(this).closest("li").children("ul").length==0) {
$('.cbp-hrsub').css("display", "none");
}
});
});
</script>
像这样,但是div没有显示任何效果。
最佳答案
如果要在鼠标悬停之前隐藏它们,只需在dom ready处理程序中添加以下内容
$('.main .cbp-hrsub').not(':has(li)').hide()
其他
$(document).ready(function () {
$('.main ul>li>a').mouseover(function () {
var $li = $(this).closest("li").children("ul");
if ($(this).closest("li").children("ul").length == 0) {
$li.find('.cbp-hrsub').hide();
}
});
});
关于javascript - 使用jQuery在Li中隐藏一个div,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28360403/