想通過JQuery來check或者uncheck頁面上的checkbox控制項,我們可能會想到用下麵的代碼:$('#chk-all').on('click', function(){ var checked = $(this).is(':checked'); $("input[type...
想通過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); });