假设我有这样的事情:
<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>
的S类testdiv
除了div
,有一个孩子<a>
与属性href="/link3"
,如何做到这一点使用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();
文章来源: Jquery: select all elements except one with specific child with specific attribute