$(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")
。
如何使其监控所有复选框?
答案 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")) {