在我不知道父元素的情况下,我无法想出选择第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-child
,last-child
和nth-child
选择器而非:first
,:last
,:nth
(如.select-me:first
})?
答案 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)
当然,如果你可以指定父选择器(性能问题),那就更好了