2012-04-02 39 views
1

我的HTML DOM檢查,如如下:檢查所有的複選框中的jQuery

<div class="menu"> 
    <input type="checkbox" value="1" class="chk-act"> 
    <input type="checkbox" value="2" class="chk-act"> 
    <input type="checkbox" value="3" class="chk-act"> 
</div> 


<div class="menu"> 
    <input type="checkbox" value="4" class="chk-act"> 
    <input type="checkbox" value="5" class="chk-act"> 
    <input type="checkbox" value="6" class="chk-act"> 
    <input type="checkbox" value="7" class="chk-act"> 
</div> 



<div class="menu"> 
    <input type="checkbox" value="8" class="chk-act"> 
    <input type="checkbox" value="9" class="chk-act"> 
</div> 

複選框的數量是不固定在每個div。因此,我需要檢查每個div是否所有複選框都選中,然後改變div樣式中的某些更改(如更改顏色),您有什麼建議檢查所有選中的複選框?

回答

3

在一個行:

$('.menu:has(:checkbox:not(:checked))'); 

爲了解釋,這將選擇所有這些都在他們裏面還沒有被選中複選框的<div class="menu">元素。然後你可以添加一個css類或做任何你需要的。如果您需要在添加課程後「重置」他們,我會這樣做:

$('.menu') 
    .removeClass('notChecked') 
    .filter(':has(:checkbox:not(:checked))') 
    .addClass('notChecked');