2012-07-26 22 views
10

私はその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が正しく指摘したように、あなたは「そのhref属性のmailtoで始まるものを除くすべてのhref属性を持つすべての要素を意味し、どの

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

を使用することができますまたはTrue#

+3

で終わります彼は代わりに、[href]:not(...)をしたいかもしれません。 – pimvdb

+0

href = "javascript:void(0)" – Toolkit

関連する問題