10

特定のアクションをアンカー タグのクリック イベントに関連付けるには、次のhref属性が必要です。

  • mailto:andで始まらない
  • #で終わらない
  • 空を含む任意の値で存在する

だから私はこのコードを試していました:

<a href="example.com">example.com</a>
<a href="mailto:someone@www.example.com">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それとも反対ですか?

誰かが私を光へと導いてくれませんか?

4

1 に答える 1

10

[href]href 属性が存在することを意味します。

pimvdbが正しく指摘したように、使用できます

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

これは、「href 属性が mailto: で始まるか # で終わるものを除いて、任意の href 属性を持つすべての a 要素」を意味します。

于 2012-07-26T19:51:45.103 に答える