如何在不知道父元素的情况下选择第n个孩子?

时间:2010-11-16 14:29:13

标签: css css3 css-selectors

在我不知道父元素的情况下,我无法想出选择第n个元素,最后一个元素或第一个元素的方法。 nth-child存在,但仅限于儿童,例如:

<div>
   <p>One</p>
   <p>Two</p>
</div>

p:last-child选择“两个”段落,p:first-child选择“一个”段落。但是,当我有动态代码并且不知道父名称是什么,甚至父母的名字是什么时(可能是div,span,anchor,ul等)呢?

例如:

<youdontknowwhat!>
   <p class="select-me">One</p>
   <p class="select-me">Two</p>
</youdontknowwhat!>

如何在此处选择第二段? (我无法选择youdontknowwhat!,因为我真的不知道它是什么元素(它只是一个假设的名字)。

为什么有first-childlast-childnth-child选择器而非:first:last:nth(如.select-me:first })?

2 个答案:

答案 0 :(得分:27)

  

:first如何与:first-child不同?除了作为根元素的<html>之外,每个HTML元素都是DOM中某个其他元素的子元素。 - BoltClock

     

因为你不知道父元素。 - fomicz

您无需知道:first-child:nth-child()的父元素。 即使您没有指定父元素,它们也会正常工作

以下选择器保证匹配任何适当的.select-me元素,无论其父元素是什么:

.select-me:nth-child(2)

答案 1 :(得分:4)

*  p:nth-child(2)

当然,如果你可以指定父选择器(性能问题),那就更好了