选择href属性不以某个字符串开头的元素

3

我有这样的链接:

<a href="my:stuff">My Link</a>
<a href="other:stuff">My Link</a>
<a href="test:stuff">My Link</a>
<a href="test:stuff">My Link</a>

我希望选择那些href属性不以“test”开头的链接。

我尝试了以下方法,但它们似乎都不起作用:

$('a[href!^="test"]')
$('a:not([href^="test"]')

我不想使用$.filter或任何类似的东西。是否有一种只使用选择器就可以完成的方法?

1个回答

6
!^=选择器不存在。不过,只需在第二个选择器中包含右括号')'后就可以正常工作了。
// Incorrect syntax
$('a:not([href^="test"]')

// Correct syntax
$('a:not([href^="test"])')

或者,您可以选择使用`.not()`方法而不是`:not()`伪选择器:
$('a').not('[href^="test"]')

这是一个关于使用:not().not()两种方法的概念验证,具体内容请参考第一种方法第二种方法

@Vic,我很高兴你找到了问题并且现在它可以工作了 :) - Terry

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