2012-06-25 19 views
1

對於此示例場景的第二<h3>World!</h3>請注意<..>元素各級未知元素):未知級別下的jQuery Selector nth-child(n)?

<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,儀式?

我可以通過使用nth-child(n)選擇器使它工作嗎?

+1

不知道你的 「絕對」 的意思。 – BoltClock

+0

注意事項:標題元素不應該存在於段落或跨度內,因此可能會混淆你的jQuery調用。看到這個演示:http://jsfiddle.net/jackwanders/9pCuz/1/ – jackwanders

+0

肯定會節省很多時間,如果你提供更多的定義範圍 – charlietfl

回答

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

第一選擇所有h3的下div.class1深度,然後採取第二個。

+0

PERFECT SNIPER !!那就是我真正需要的!謝謝!!! –

1

我認爲你正在尋找.eq()

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

在這個例子中,jQuery的返回h3元件的陣列,而你在陣列中選擇第二項。

0

$("div.class1 h3")會給你兩個h3的數組。所以你可以使用$("div.class1 h3")[1]來獲得第二個匹配元素。

+1

這會給你的HTML元素,而不是jQuery元素。使用.eq(1)來獲得一個jQuery元素 – jackwanders

0

查找包含類H3中的所有元素,隔離最後每個

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

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