3

我是 jquery 的初学者,所以我可能不会理解太多高级的东西,但问题是:当我尝试选择 时nth-child(1),它选择了第一个,正如预期的那样(我知道我可以使用第一个孩子,但我不喜欢它)。但是,如果更改为nth-child(2),则不会选择任何内容。nth-child(3)选择Something2,并nth-child(5)选择something3。这对我来说太多了!

<div id="navigation">
    <a href="#">Something</a> <br />
    <a href="#">Something2</a> <br />
    <a href="#">Something3</a> <br />
</div>

<script>
$('#navigation').find(">:nth-child(1)").css("font-weight", "bold");
</script>
4

2 回答 2

4

:nth-child(1) 应该选择第二个元素,因为您传入的索引是从零开始的。

问题是您的选择器包含<br />标签,这是不期望的(从我的角度来看)。

HTML:

<div id="navigation">
    <a href="#">Something</a> <br />
    <a href="#">Something2</a> <br />
    <a href="#">Something3</a> <br />
</div>​

JavaScript:

$('#navigation').children().not('br').eq(1).css("font-weight", "bold");​

现场演示

于 2012-12-09T06:43:02.953 回答
0

nth-child 选择器起初有点令人困惑,因为它是 parent 的 nth-child,而不仅仅是与 parent 的选择器匹配的 nth-child,选择器与该选择器的位置无关。

要获得所需的 div,请像这样执行 3n+1:

$('#navigation:nth-child(3n+1)').css("font-weight", "bold");
于 2012-12-09T06:44:01.733 回答