如何访问特定的嵌套复选框组

时间:2012-05-16 15:28:23

标签: jquery

以下是包含许多复选框的复杂表单的一部分......

<div class="listbuilder-column">
    <h3 class="con_act_list">Activity</h3>
    <ul id="activity">
        <li>
            <input type="checkbox" id="con_act_1" name="con_act[]" class="con_act" value="fabricate"/>
            Fabricate roofs
        <li>
        <li>
            <input type="checkbox" id="con_act_2" name="con_act[]" class="con_act" value="buy-In"/>
            Buy-in roofs
        <li>
        <li>
            <input type="checkbox" name="con_act[]" class="con_act" value="install"/>
            Install roofs
        <li>
    </ul>
</div>
<div class="listbuilder-column"> ........   more checkboxes </div>

我想知道如何确定这些复选框的状态,即是否已选中。 我使用的是$(.con_act input:checked").length,但复选框嵌套在div ...

2 个答案:

答案 0 :(得分:1)

让您的具体div拥有一个ID(即specdiv),您的选择器应为

$("#specdiv [type=checkbox]:checked").length

或者,由于您已经拥有ul的ID,请转到此处:

$("#activity [type=checkbox]:checked").length

这是一个可以解决各种可能性的问题:http://jsfiddle.net/7WnBG/

答案 1 :(得分:0)

要查找已选中复选框的数量:

$('input.con_act:checkbox:checked').length;

这首先找到input元素,然后按类名过滤,然后只选择那些实际上是type="checkbox"的元素,最后只选择那些被检查的元素。在执行jQuery行的时候。

嵌套级别几乎无关紧要,但您可以轻松搜索特定父元素中的嵌套级别:

$('#activity').find('input.con_act:checkbox:checked').length;
/* or: */
$('#activity input.con_act:checkbox:checked').length;