.prop(“checked”)仅选择第一个元素

时间:2013-03-27 21:02:21

标签: jquery

$(function() {
    $('.checkbox').change(function () {
    if ($('.checkbox').prop("checked")) {
        alert('checked');
        if ($('#print').length == 0) {
            $('#post').append('<input type="button" id="print" value="Print">');
        }
    } else {
        alert('unchecked');
        if ($('#print').length != 0) {
            $('#print').remove();
        }
    }
    });
});

通过上面的示例,当我选中第一个复选框时,当我取消选中时,它会激活alert('checked');,它会激活alert('unchecked');。按预期工作。

但是,如果我选中复选框,则除了第一个(第二个,第三个...复选框等)之外的任何其他元素,它始终从False返回$('.checkbox').prop("checked")

如何使其监控所有复选框?

2 个答案:

答案 0 :(得分:4)

$('.checkbox')不会给你复选框的状态,因为类选择器不会返回单个元素。

使用:$('.checkbox').eq(0).prop("checked")获取第一个,或使用.each()在循环中访问结果列表。

$('.checkbox').each(function() {
    if($(this).prop("checked")) {
         alert("checked!");
    }
})

答案 1 :(得分:1)

这将选择页面上带有复选框类的所有元素:

if ($('.checkbox').prop("checked")) {

但是,这将选择触发事件的元素:

if ($(this).prop("checked")) {