解決checkbox的attr(checked)一直爲undefined問題

用JQuery把複選框checkbox更改成選中狀態,但選中後再彈出選中狀態,alert($("#checkbox_all").attr("checked")); jquery

結果一直是 undefined !!this

原來,在jquery1.6版本便對此作出了修改: spa

【checked屬性在頁面初始化的時候已經初始化好了,不會隨着狀態的改變而改變。code

也就是說若是checkbox在頁面加載完畢是選中的,那麼返回的永遠都是checked(個人一開始就是沒選中)blog

若是一開始沒被選中,則返回的永遠是undefined !】io

既然jquery對此作出了修改,那確定也就是有相應的更好的解決方法:function

.prop()即是解決這個問題的利器!class

具體用法以下:方法

alert($("#checkbox_all").prop("checked")); checkbox

此時就會變成true或者false啦~~

 

因而乎,代碼就改爲了以下:

#check_all 爲全選的總checkbox,#check_children爲子checkbox 

$("#check_all").change(function(){ 
    $('.check_children').prop("checked",this.checked); 
}); 

或者:

$("#check_all").change(function(){ 
    var is_checked = $(this).prop("checked"); 
    $('.check_children').prop("checked",is_checked); 
}); 

固然,推薦第一種方法,代碼越少越好嘛~

相關文章
相關標籤/搜索