2

如果它有一个带有 class 的内部元素,我需要将一个类添加dropdown-submenu到父级。这是 HTML 代码的示例:LIULdropdown-menu

<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

4 回答 4

8

您可以使用 jQuery.has() 函数

$('li').has('ul.dropdown-menu').addClass('dropdown-submenu');

或使用:has 选择器

$('li:has(ul.dropdown-menu)').addClass('dropdown-submenu');

于 2013-07-11T16:27:27.053 回答
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/

于 2014-02-03T15:14:49.107 回答
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/

于 2013-07-11T16:49:49.070 回答
0

可能这会有所帮助:-

$(document).ready(function()
{

    if($('li ul').hasClass('dropdown-menu'))
    {
        $(this).addClass('dropdown-submenu');
    }

});
于 2013-07-11T16:40:10.553 回答