获取没有一个孩子有某一类的所有父母
问题描述:
我要选择使用jQuery父母的所有div的,没有孩子的类locked
获取没有一个孩子有某一类的所有父母
示例代码:
<div class='myparent'>
<div class='mychild locked'></div>
</div>
<div class='myparent'>
<div class='mychild locked'></div>
</div>
<div class='myparent'>
<div class='mychild'></div>
</div>
我觉得我真的很接近:
$('div.myparent:not(:has(div[class=locked]))')
但是,这并不工作。
答
你可以使用类选择,没有必要对属性选择DEMO
$('.myparent:not(:has(div.locked))')
注: - 你可以这样做太: - $('.myparent:not(:has(.locked))')
答
- 子类,并使用不( )排除锁定类别,然后使用父级锁定父级
$(".mychild:not(.locked)").parent().css("color","red")
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='myparent'>
<div class='mychild locked'>1</div>
</div>
<div class='myparent'>
<div class='mychild locked'>2</div>
</div>
<div class='myparent'>
<div class='mychild'>3</div>
</div>
答
另一种选择是使用jquery filter
到filter
出myparent
不具有locked
孩子 - 看演示如下:
$('.myparent').filter(function(){
return !$(this).find('.locked').length;
}).css('color','blue');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='myparent'>
<div class='mychild locked'>one</div>
</div>
<div class='myparent'>
<div class='mychild locked'>two</div>
</div>
<div class='myparent'>
<div class='mychild'>three</div>
</div>
最佳的解决方案+ 1 –
究竟是什么。我在找,谢谢,接受 –
不客气。 –