a:不是(a:不是())选择器

我想要一个特定的动作,只要它的href属性与锚标记的click事件相关联:

  • 不是以mailto:开头的mailto:
  • 不以#和结尾
  • 存在任何值,包括空

所以我在尝试这段代码:

 https://stackoverflow.com/questions/11676962/anotanothref-selector/example.com Someone The Page This does nothing  $(document).on('click', 'a:not([href^="mailto\\:"], [href$="\\#"], [href])', myFunction);  

它没有用。 但令我沮丧的是:

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

但我不明白怎么做。 注意内部:not() 。 据我所知, [href]意味着没有href属性。 还是相反?

有人能引导我走向光明吗?

[href]表示存在一个href属性,无论它具有哪个值(如果有)。

正如pimvdb正确指出的那样,你可以使用

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

这意味着“具有任何href属性的所有元素,除了那些href属性以mailto开头的那些元素,或以#结尾的那些元素