我有一个非常简单的需求,就是使用jQuery检查一组复选框是否已选中,如果选择了一个单选按钮,则清除所有复选框。这个jQuery代码实现了这个功能,但它只能工作一次 - 如果我点击选择全部(所有复选框被选中),然后再点击取消选择(所有复选框取消选中),再次点击选择全部时,没有效果。同样,如果我手动取消选中某些框,然后再次点击选择全部,也没有效果。jQuery 代码:
$('#all').on('change', function() {
if (!$(this).is(':checked')) {
$('.country').attr('checked', false);
} else {
$('.country').attr('checked', true);
}
});
$('#none').on('change', function() {
if (!$(this).is(':checked')) {
$('.country').attr('checked', true);
} else {
$('.country').attr('checked', false);
}
});
HTML
<div class="subselect">
<input type="radio" class="TLO" name="radio1" id="all" />Check All
<br />
<input type="radio" class="TLO" name="radio1" id="none" />Clear All
<br />
</div>
<br />
<br />
<div class="cselect" id="countries">
<input type="checkbox" class="country" />1
<br />
<input type="checkbox" class="country" />2
<br />
<input type="checkbox" class="country" />3
</div>
jsFiddle http://jsfiddle.net/vsGtF/1/
.prop()
替代.attr()
。 - David