2011-08-09 151 views
2

我想只選擇不包含錨點的鏈接,如#。我怎麼做?如何只選擇沒有`#`的鏈接?

+0

請提供某種示例(最好是幾個)。他們在那裏投票開心! –

+0

請更具體地說明您嘗試選擇哪種情況。你是否在鏈接之後的錨點不是'#'或''「''或者你想排除一般的標籤嗎? – zzzzBov

+1

所有主題標籤... – BiberFiver

回答

0

使用此代碼:

如果你想過濾的href = 「#」:

$('a[href!="#"]') 

否則:

$('a').filter(function(){ 
    return !/#/.test(this.href);//you can filter what you do not want with the regex 
}) 
+0

「contains」!=「僅存在」 – chelmertz

+0

-1不幸的是,這不起作用 - 只有當整個'href'爲'「#」'時,纔會有效。 –

+0

我沒有仔細閱讀這個問題。查看我的更新。 – Darm

3

這將選擇href屬性不會開始所有錨與#

$('a:not([href^="#"]'); 

它可能是一個慢選擇器。你只使用過一次還是多次?您可以加快它有點像:

$('a').not('[href^="#"]'); 

如果你也不想選擇它含有#隨時隨地錨,而不是剛開始的時候,你可以將^更改爲*。但是,這也不會選擇重新加載瀏覽器的鏈接(轉到其他頁面,然後到該頁面上的指定錨點)。我不認爲這是你想要的,但我現在不積極。

+0

想錯過什麼? –

+0

「contains」!=「以」 – chelmertz

+0

開頭@PaulPRO:不,我看到一個「以......開頭......」 – chelmertz

2

試試這個:

$(':not(a[href*="#"])); 


這將是更快(將只選擇錨以及):

$('a:not([href*="#"])'); 
+0

這是正確的,或$('a:not([href * =「#」])') – ghayes

+0

With a [http://jsfiddle.net/K8zgH/5/](Fiddle) – ghayes

+0

就像它選擇所有這也不是一個錨。 – Paulpro

2

我這麼驚訝所有的快速答案,因爲他們中的大多數人並沒有真正做到所要求的。

$('a:not([href*="#"])'); 

應選擇不包含「錨」或我承擔OP意味着鏈接:在頁面的錨/ ID標籤。