2017-08-04 86 views
4

我要選擇使用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]))') 

但是,這並不工作。

回答

7

你可以使用類選擇,沒有必要對屬性選擇DEMO

$('.myparent:not(:has(div.locked))') 

注: - 你可以這樣做太: - $('.myparent:not(:has(.locked))')

+0

最佳的解決方案+ 1 –

+0

究竟是什麼。我在找,謝謝,接受 –

+0

不客氣。 –

0
  1. 子類,並使用不( )排除鎖定類別,然後使用父級鎖定父級

$(".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>

0

另一種選擇是使用jquery filterfiltermyparent不具有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>

相關問題