选择没有 href 属性的锚点

10
我想要更改所有没有 href 属性的锚点的 CSS 样式。
我可以使用选择器选择以某些内容开头的锚点,例如 $('a[href^="some_link"]')。但是我希望做到相反的效果。我该如何使用 jQuery 选择没有 href 的锚点?
此外,我能否使用 CSS 选择器实现这一点?
谢谢。
2个回答

21
你需要这个选择器(jQuery/CSS兼容):

You'll want this selector (jQuery/CSS compatible):

a:not([href])
如果您需要支持IE(因为有:not()),请将其用作jQuery选择器。否则,您可以将其用于CSS规则。

很奇怪的是,a[href] 也会选择没有 href 属性的元素。 - Koen.

3

使用$("a").filter(function() { return !this.attributes['href']; })

虽然代码有点长,但浏览器可以优化对锚点的选择,并且进行过滤比Sizzle(或querySelectorAll)运行得更快。

http://jsfiddle.net/9PWQB/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接