a :не (a :не ([href] ))селектор

Я хочу, чтобы определенное действие было связано с событием щелчка тега привязки всякий раз, когда его атрибут href:

  • не начинается с mailto:и
  • не заканчивается на #и
  • присутствует с любым значением, включая пустое

Итак, я пробовал этот код:

<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нет. Или наоборот?

Может ли кто-нибудь привести меня к свету?

10
задан Clodoaldo Neto 26 July 2012 в 19:55
поделиться