我想只选择不包含锚点的链接,例如#
。我该怎么做?
答案 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
})