如何只选择没有`#`的链接?

时间:2011-08-09 20:42:13

标签: javascript jquery hyperlink

我想只选择不包含锚点的链接,例如#。我该怎么做?

4 个答案:

答案 0 :(得分:3)

这将选择其href属性不以#开头的所有锚点。

$('a:not([href^="#"]');

它可能是一个慢选择器。你只使用过一次或多次吗?你可以加速它有点像:

$('a').not('[href^="#"]');

如果您也不想在任何地方选择包​​含#的锚点,而不仅仅是开头,则可以将^更改为*。但是这也不会选择重新加载浏览器的链接(转到另一个页面,然后转到该页面上的命名锚点)。我不认为这是你想要的,但我现在不是正面的。

答案 1 :(得分:2)

试试这个:

$(':not(a[href*="#"]));


这会更快(并且也会只选择锚点):

$('a:not([href*="#"])');

答案 2 :(得分:2)

我对所有快速答案感到非常惊讶,因为他们中的大多数人实际上并没有按照要求做到这一点。

$('a:not([href*="#"])');

应该选择不包含“anchors”的链接,或者我认为OP意味着:页内锚点/ id标签。

答案 3 :(得分:0)

使用此代码:

如果您想过滤href =“#”:

$('a[href!="#"]')

否则:

$('a').filter(function(){
    return !/#/.test(this.href);//you can filter what you do not want with the regex
})