想通过JQuery来check或者uncheck页面上的checkbox控件,我们可能会想到用下面的代码:
$('#chk-all').on('click', function(){
var checked = $(this).is(':checked');
$("input[type='checkbox'][name='chk-att']").attr('checked', checked);
});
chk-all是一个checkbox控件,我们想通过点击它来实现全选或取消全选的功能。在onclick事件中,首先通过$(this).is(':checked')来获取该checkbox当前的选中状态,然后将页面上所有name='chk-att'的checkbox控件选中或取消选中。这里使用的方法是修改checked属性的值,然而该方法并不总是奏效,有时你会看到元素的属性值确实被修改了,但是选中状态并未改变。尝试将attr()方法改成removeAttr()来实现取消选中,仍然不起作用!
解决办法是使用prop()函数来替代上面代码中的attr()函数。将上面的代码修改如下:
$('#chk-all').on('click', function(){
var checked = $(this).is(':checked');
$("input[type='checkbox'][name='chk-att']").prop('checked', checked);
});