Jquery:选择除具有特定属性的特定子元素之外的所有元素
假设我有这样的事情:
现在我想选择类testdiv
所有
s,除了具有属性
href="https://stackoverflow.com/link3"
的子
的div
,如何用jQuery做到这一点?
我知道我可以这样做:
$('div.testdiv')
使用:not
+ :has
使用一个选择器可以轻松完成:
$('div.testdiv:not(:has(a[href="/link3"]))')
如果不引用属性中的值(“CSS标识符”),则需要使用两个反斜杠( \\
)转义斜杠( /
):
$('div.testdiv:not(:has(a[href=\\/link3]))')
现场演示
如果div中只能有一个锚点,您可以使用:
$('div.testdiv:has(a[href!="\\/link3")')
您可以使用filter
:
var elements = $('.testdiv').filter(function(){ return !$(this).find('a[href=\\/link3]').length; });
$('div.testdiv a[href^=/link3').parents();