2012-07-26 21 views
10

我想那一定動作要關聯到錨標籤的Click事件,每當其href屬性:一個:沒有(一:不使用(HREF))選擇

  • mailto:啓動和
  • #結束,
  • 存在與包括空

所以我想這個代碼的任何值:

<a href="example.com">example.com</a> 
<a href="mailto:[email protected]">Someone</a> 
<a href="thepage#">The Page</a> 
<a>This does nothing</a> 

<script type="text/javascript"> 
    $(document).on('click', 'a:not([href^="mailto\\:"], [href$="\\#"], [href])', myFunction); 
</script> 

而且它沒有工作。但令我沮喪的是這個作品:

$(document).on('click', 'a:not([href^="mailto\\:"], [href$="\\#"], a:not([href]))', myFunction); 

但我不明白如何。注意內部:not()。據我所知[href]意味着沒有href屬性。或者相反?

有人能帶我去光明嗎?

回答

9

[href]表示無論它具有哪個值(如果有),都有href屬性。

由於pimvdb正確地指出的那樣,你可以使用

a[href]:not([href^="mailto\\:"], [href$="\\#"])

這意味着「任何href屬性全部元素,除了那些href屬性與郵寄地址開頭:或#

+3

真正結束,他可能需要一個[href]:not(...)來代替 – pimvdb 2012-07-26 19:53:56

+0

還有href =「javascript:void(0)」 – Toolkit 2017-11-30 07:57:00

相關問題