jQuery Selector nth-child(n)在未知级别?

时间:2012-06-25 17:08:46

标签: jquery html jquery-selectors css-selectors

对于此示例方案中的第二个<h3>World!</h3>请注意,<..>元素是所有级别的未知元素):

<div></div>
<div class="class1">
    <..>
        <h3>Hello!</h3>
        <..>
            <h3>World!</h3>
        </..>
    </..>
</div>

假设我们只知道

  • Top Parent <div class="class1">Target Child Elements <h3>
  • 中间等级为unknowns。可以是<p><div><ul>无论如何。

所以我想使用nth-child(n)选择器。但我不能这样使用:

$("div.class1 h3:nth-child(2)").html();

现在我意识到nth-child(n)选择器只能选择父元素的Direct Child,rite?

我可以使用nth-child(n)选择器吗?

4 个答案:

答案 0 :(得分:4)

$("div.class1 h3:eq(1)").html();

首先选择h3深度下的所有div.class1,然后选择第二个。

答案 1 :(得分:1)

我认为你正在寻找.eq()

$('h3').eq(1).html();

在这个例子中,jQuery返回一个h3个元素的数组,你正在选择数组中的第二个项目。

答案 2 :(得分:0)

$("div.class1 h3")将为您提供两个h3的数组。因此,您可以使用$("div.class1 h3")[1]来获取第二个匹配元素。

答案 3 :(得分:0)

查找包含h3的类中的所有元素,隔离每个

的最后一个元素

DEMO :(嵌套版本)http://jsfiddle.net/3daHU/1/

$("div.class1 *:has(h3)").each(function(){   
    $(this).children('h3:last').css('color','red')
})