2016-09-20 53 views
0

考慮這個片斷:爲什麼n-child會返回?

<div> 
    <div class="user_photo"></div> 
    <h5><b>Jane Doe,</b> 01 May 2016</h5> 
</div> 
<div> 
    <div class="user_photo"></div> 
    <h5><b>Jane Doe,</b> 01 May 2016</h5> 
</div> 

當搜索jQuery('div.user_photo:nth-child(0)')我得到:

[<div class=​"user_photo">​</div>​, <div class=​"user_photo">​</div>​] 

爲什麼我沒有拿到此數組中的第一個div?我如何獲得數組的第一個元素而不添加新的類?

+2

...因爲您正在使用'用戶照片'類的nth-child div。 – Scott

+0

你試過'jQuery('div.user_photo')[0]'? – connexo

+0

提示:''div.user_photo:n-child [1]'**應**返回'[

,
]'。這是什麼意思 – slebetman

回答

0

選擇器div.user_photo:nth-child(0)指的是每個具有類user_photo 的div都是其父代的第一個孩子。

要「獲取」該陣列的第一個元素,您可以使用getElementsByClassName函數,假設您發佈的代碼段是具有user_photo類的div的第一次出現。

document.getElementsByClassName("user_photo")[0]; 
// the first div having user_photo as a class 
+0

這就是我需要在父單元中找到'user_photo',對吧? – stavrzt

+0

忘記父母單位。用'document.getElementsByClass('user_photo')'''''''''''''''''''''''''''''然後,用'document.getElementsByClass('user_photo')[0]'指向第一個文檔,爲您提供文檔中具有'user_photo'類的第一個div。 –

+1

_「選擇器div.user_photo:nth-​​child(0)指的是每個具有class user_photo的div的第一個孩子」_ - 不,它不。它選擇所有具有'user_photo'類的'div'元素,它們是_their_父元素的第一個子元素。 – CBroe

1

nth-child選擇實際上意味着如果選擇的元素是它的父的nth-child

所以在你的情況下,.user_photo是其父母div每個的第一個孩子。爲了測試這個,將.user_photo div和h5切換爲其中一個元素,並且您會看到它只會選擇.user_photo div中的一個。

要做你想做的事,我會把一個班放在那個匿名div上,然後做.anonymous-div:first-child .user_photo。如果您不能在該div上放置課程,那麼您可能需要使用另一個具有更多唯一標識符的父元素遍歷它,所以類似於#common-parent > div:first-child .user_photo

0

嘗試執行第n個類型。

jQuery('div.user_photo:nth-of-type(0)')