假设我有这样的事情:
<div class="testdiv">
<a href="/link1">link 1</a>
</div>
<div class="testdiv">
<a href="/link2">link 2</a>
</div>
<div class="testdiv">
<a href="/link3">link 3</a>
</div>
<div class="testdiv">
<a href="/link4">link 4</a>
</div>
现在我想要选择<div>
个班级testdiv
,但div
的孩子<a>
属性href="/link3"
除外,如何做到这一点{ jQuery的?
我知道我可以这样做:
$('div.testdiv')
答案 0 :(得分:7)
使用:not
+ :has
,可以使用一个选择器轻松完成:
$('div.testdiv:not(:has(a[href="/link3"]))')
如果不引用属性中的值(“CSS标识符”),则需要使用两个反斜杠(/
)来转义斜杠(\\
):
$('div.testdiv:not(:has(a[href=\\/link3]))')
如果div中只能有一个锚点,您可以使用它:
$('div.testdiv:has(a[href!="\\/link3")')
答案 1 :(得分:1)
您可以使用filter
:
var elements = $('.testdiv').filter(function(){
return !$(this).find('a[href=\\/link3]').length;
});
答案 2 :(得分:-2)
$('div.testdiv a[href^=/link3').parents();