用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); });
固然,推薦第一種方法,代碼越少越好嘛~