如果内容dropdown-submenu
元素具有类LI
,我需要向父UL
添加一个类dropdown-menu
。这是HTML代码的示例:
<ul class="dropdown-menu" id="menu1">
<li>
<a href="#">More options</a>
<ul class="dropdown-menu">
<li><a href="#">Second level link</a></li>
<li><a href="#">Second level link</a></li>
<li><a href="#">Second level link</a></li>
<li><a href="#">Second level link</a></li>
<li><a href="#">Second level link</a></li>
</ul>
</li>
</ul>
我还没有尝试任何操作,因为我们不知道如何检查每个<ul class="dropdown-menu">
元素中是否存在LI
。有帮助吗?
答案 0 :(得分:8)
您可以使用jQuery .has()
function:
$('li').has('ul.dropdown-menu').addClass('dropdown-submenu');
或使用:has
selector:
$('li:has(ul.dropdown-menu)').addClass('dropdown-submenu');
答案 1 :(得分:1)
我的新选项/示例与上次回复一样,您可以获得最佳效果。
Html在这里:
<ul class="accordion">
<li><a href="#">1</a></li>
<li><a href="#">2</a>
<ul>
<li><a href="#">a</a></li>
<li><a href="#">b</a></li>
</ul>
</li>
<li><a href="#">3</a></li>
<li><a href="#">4</a>
<ul>
<li><a href="#">a</a>
<ul>
<li><a href="#">x</a></li>
<li><a href="#">y</a></li>
<li><a href="#">z</a></li>
</ul>
</li>
</ul>
</li>
</ul>
javaScript代码在这里:
$(".accordion > li:first > a").addClass("active");
var item = $(".accordion > li").find("ul");
if(item.length > 0){
item.addClass("expand");
item.find("ul").removeClass("expand").addClass("multi-expand");
}
这是JSFiddle示例:http://jsfiddle.net/hPfPn/
答案 2 :(得分:0)
可能会有所帮助: -
$(document).ready(function()
{
if($('li ul').hasClass('dropdown-menu'))
{
$(this).addClass('dropdown-submenu');
}
});
答案 3 :(得分:0)
您可以使用下拉菜单类检查ul的长度。如果大于0,则该类存在。
这应该适合你:
if($('ul.dropdown-menu').find('li').children('ul.dropdown-menu').length > 0)
{
var item = $('ul.dropdown-menu').find('li').children('ul.dropdown-menu');
item.parent().addClass('dropdown-submenu');
}
else
{
//do something - ul has no class with name .dropdown-menu
}
以下是Jsfiddle示例:http://jsfiddle.net/HvPtW/2/