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');ます。意図したとおりに動作します。

ただし、最初 (2 番目、3 番目... チェックボックスなど) 以外の要素では、チェックボックスをオンにすると、常に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 に答える