1
$(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").

如何让它监视所有复选框?

4

2 回答 2

4

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

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

$('.checkbox').each(function() {
    if($(this).prop("checked")) {
         alert("checked!");
    }
})
于 2013-03-27T21:06:10.540 回答
1

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

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

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

if ($(this).prop("checked")) {
于 2013-03-27T21:09:46.457 回答