2012-12-09 91 views
3

我在jquery的初學者,所以我可能不會了解太多先進的東西,但這裏是問題:當我嘗試選擇nth-child(1),它選擇第一個,正如所料(我知道我可以用第一個孩子,但我不喜歡它)。但是,如果更改爲nth-child(2),則不會選擇任何內容。 nth-child(3)選擇Something2,並且nth-child(5)選擇something3。這對我來說太過分了!jQuery nth孩子選擇跳過數字

<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> 
+0

可能是因爲它的選擇BR標籤?什麼是低於標誌btw? – bozdoz

+0

我在其他一些問題上看到了它。需要嗎?猜不是 – davidhin

+0

也許你可以嘗試找到所有'a'元素並使用eq()來獲得某個元素。 – bozdoz

回答

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");​ 

Live Demo

+0

完美的工作.. + 1 –

+0

公式()是容易去。我認爲你應該通過一個標籤雖然而不是搜索 – bozdoz

+0

據我所知,只選擇一個元素進行搜索可能會更具可讀性(我不確定性能比較),但如果OP僅僅使用元素爲在SO上展示他的問題的目的,我認爲排除你幾乎不想包含的元素是有意義的。 –