2012-04-02 52 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');