jquery - 迭代复选框并确定是否已选中

时间:2010-08-20 11:52:22

标签: jquery checkbox

我想迭代复选框div并确定是否选中checkbox1,checkbox2,checkbox3

    // iterate over checkboxes
    $('#register_students').click(function() { 
        $("div.checkboxes").each(function() {           
            var student = $(this).attr('data');             
            var checkbox1 = ??? 
            var checkbox2 = ???
            var checkbox3 = ???
        });     
        return false;
    });




<td>
<div class='checkboxes' data=8255>
<INPUT type="checkbox"  value="36" class="checkbox1">
<INPUT type="checkbox"  value="14" class="checkbox2">
</div>
</td>

<td>
<div class='checkboxes' data=8244>
<INPUT type="checkbox"  value="36" class="checkbox1">
<INPUT type="checkbox"  value="14" class="checkbox2">
<INPUT type="checkbox"  value="14" class="checkbox3">
</div>
</td>

3 个答案:

答案 0 :(得分:4)

使用此功能。

$(this).is(':checked')

返回truefalse。像,

$('#register_students').click(function() {
    $("div.checkboxes").each(function(index1) {
        var student = $(this).attr('data');
        cb = [];           
        $('input[type=checkbox]',this).each(function(index2, Element){
           cb[index2] = $(Element).is(':checked');
        });
        // use 'cb' and 'student' as you want. 3 checkbox value are as cb[0], cb[1], cb[2]
    });     
    return false;
});

答案 1 :(得分:3)

使用:checked选择器。

http://api.jquery.com/checked-selector/

编辑:

对于这样的例子,我会尝试 http://jsfiddle.net/ ...帮助很多!

答案 2 :(得分:3)

您正在考虑包含复选框的divs,因此您需要find您的复选框。

(您还应该缓存$(this)以避免多次调用):

    $("div.checkboxes").each(function() {
        var $this = $(this);           
        var student = $this.attr('data');             
        var checkbox1 = $this.find('input.checkbox1').is(':checked'); 
        var checkbox2 = $this.find('input.checkbox2').is(':checked'); 
        var checkbox3 = $this.find('input.checkbox3').is(':checked'); 
    });     
    return false;

三个复选框行将返回一个布尔值,表示检查当前div中的复选框。