如果类包含带有class =“dropdown-menu”的UL,则将类添加到父LI

时间:2013-07-11 16:23:30

标签: jquery html

如果内容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。有帮助吗?

4 个答案:

答案 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/