2016-09-20 93 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)')