2013-01-08 74 views
0

我已經使用過很多次,但是這次它不起作用,並且在控制檯中沒有錯誤。 我有這個網站:第一選擇器不首先過濾,但第一個孩子沒有過濾

<ul> 
<li class="iheader"><h1>TITLE</h1></li> 
//some more list items 
<li class="iheader"></li> 
</ul> 

現在運行此代碼:

$('.iheader:first').removeClass('iheader'); 

刪除這兩個類。我也試過:

$('.iheader').filter(':first').removeClass('iheader'); 

而且結果相同。

但是,如果我使用first:child它確實工作時,如上所述的HTML。

任何人都知道爲什麼?這可能與我包括jQuery移動的事實有關嗎?

+5

在小提琴中工作:http://jsfiddle.net/RoryMcCrossan/29HKU/。問題必須存在於代碼中的其他地方。 –

+0

由於某種原因@acme解決方案爲我工作,你碰巧知道爲什麼? –

回答

5

嘗試

$('.iheader:first-child').removeClass('iheader'); 
+0

爲什麼在上帝的名字做了這項工作? –

+1

@ eric.itzhak:你確定你沒有多次調用代碼嗎?這是我能想到的唯一解釋...(您使用的是什麼版本的jQuery) – Matt

+0

您的代碼也應該工作(因爲其他人已經擺弄出來) - 我猜這個問題在其他地方。但只要這是工作,只要使用它;-) – acme

0

隨着jQuery first

$('.iheader').first().removeClass('iheader'); 
+0

不,這是做同樣的事情。 –

+0

我知道,但它的一個建議嘗試一種替代方式 – lante

+0

噢,我的意思是我試過了,它沒有工作:)謝謝你試圖幫助! –

0

對於那些想知道爲什麼Acme的解決方案有效, 這是因爲jQuery有使用CSS選擇器的選項,:first-child是一個CSS選擇指定元素的css是其父項的第一個子項。

相關問題