1

我有这个:

    <ul>
        <li>
            <ul>
                <li><a>Hello world</a></li>
                <li><a>hi</a></li>
            </ul>
       </li>
       <li><a>hi</a></li>
   </ul>

我需要选择第二个 ul 中的 li (例如,有“Hello world”字样的那个。)

我如何用 jQuery 做到这一点?

我试过这个:

$('ul li:eq(1) li:eq(1)').doSomthing();
4

3 回答 3

4

这很简单:

ul ul li

但是,这不会检查立即嵌套;选择器中的第二个ul很可能嵌套得更深。您可以通过使用来限制它>

ul > li > ul > li

只抓取第一个li,它可能看起来像这样:

​$("ul > li > ul > li:first").css("background", "red");​​​​​​​​​​

您尝试使用:eq伪选择器的方法看起来更像这样:

​$("li:eq(0) li:eq(0)").css("background", "red");​​​​​​​​​​

请记住,索引是从零开始的,因此第一项始终是索引 0。

于 2012-11-15T14:48:25.140 回答
0

最省事的是使用直接子选择器>

$("ul > li > ul")
于 2012-11-15T14:49:57.133 回答
0
try this it will work as you wish

$('ul li>ul li:eq(0)').css('border','1px solid red');

于 2013-12-26T18:06:00.220 回答