2012-09-27 31 views
0

隨着其他一些a類的元素,我有與標記是否jQuery的。不是()方法需要CSS選擇器

<a class="editLink" href="www.somelink.com"> Edit <\a>

一個鏈接,我想用選擇每a元素除了這個editLink類中的jQuery。

所以我用a.not(".editLink")爲jQuery選擇器工作正常。但我注意到,這也適用於我時a.not("editLink")a.not("#editLink")

這就像jQuery忽略作爲not()方法參數的一部分傳遞的CSS。文檔建議有必要通過id/class CSS,但是我可以告訴它不必要的。

任何人都可以對此有所瞭解嗎?我是愚蠢的還是有一些魔術發生?

感謝


更新 - 好吧,我想我和我的語法犯了一個錯誤。我在做:

$("p, a.not(".editLink")").click()... 

當它應該是

$("p, a").not("a.editLink").click()... 

所以我不好。有趣的是,儘管原作確實選擇了除了editLink課程中的所有元素之外的所有元素。

感謝您的幫助:)

+0

您可以與我們分享完整的javascript,因爲您發佈的內容在當前表單中沒有意義。 –

+0

我正在使用.not() - 我將添加更多腳本 – dannymilsom

+0

@MAtt $(「allElements」)。not(「exceptions」); 這裏是區別:http://api.jquery.com/not/和http://api.jquery.com/not-selector/ – SparK

回答

1

它確實需要一個選擇字符串。它只是將"editLink"作爲一個選擇器字符串,表示一個名爲<editLink>的元素,這顯然不是您的<a>元素。

因此,您的代碼a.not("editLink")「有用」......只是不符合您期望的方式:而不是過濾掉那些沒有該名稱的類的元素,它不會執行任何操作,因爲沒有任何元素是<editLink>元素。而且,如果您的<a>元素都沒有該名稱的ID,那麼a.not("#editLink")也是如此。

-1

你也可以使用CSS,像這樣:$('a:not(.editLink)')

+0

這實際上並沒有回答這個問題。 –

+0

[在元]這是一個downvotable評論LOL – SparK

+0

我只是建議另一個(更好)選擇做你想做的事,因爲它使用原生CSS選擇器。但是,如果你想按照你的方式來做到這一點:'$('a')。not('。editLink')' –