& lt; li>带着孩子<ul>从& lt; ul>< light >的子元素

Get <li> with child <ul> from <ul> child of <li>

本文关键字:ul lt light 元素 孩子 li      更新时间:2023-09-26

我这里有一个非常简单的菜单示例:

<ul id="1">
    <li><a href="#">First</a></li>
    <li><a href="#">Second</a>
    <ul id="2">
        <li><a href="#">Second - 1</a></li>
        <li><a href="#">Second - 2</a></li>
        <li><a href="#">Second - 3</a>
        <ul id="3">
            <li><a href="#">Aaa</a></li>
            <li><a href="#">Bbb</a></li>
            <li><a href="#">Ccc</a></li>
        </ul>
        </li>
    </ul>
    </li>
    <li><a href="#">Third</a></li>
</ul>

我需要得到<li>,它有一个孩子<ul>,这是<ul>的孩子,<li>的孩子,并应用一个样式给它。

我知道这听起来很复杂,但在上面的例子中,我只想得到<li>,它说"Second - 3",这是一个ul,它是一个li的孩子,有一个孩子ul。我不想得到任何其他的<li> s。

我不能这样做,如果没有li表示"Second",我不希望那样。

$("li > ul").addClass('whatever');

使用$("li ul li:has(ul)")

例句:

$(function(){
    var items = $("li ul li:has(ul)");
    alert(items.html());
});

工作示例:http://jsfiddle.net/EXzaa/

试试这个:

$("li > ul > li").each(function(){
    if ( $(this).find("ul").length > 0){
        $(this).css({"font-weight":"bold"});
    }
});

除非我弄错了,否则这很简单。试试这样做:

$('#3').parent('li').addClass('whatever');

这将选择id = 3的ul元素的父节点(仅当它是li元素时)