這兩天遇到一個問題,就是在點選checkbox後,$(this).attr('checked')得到的值要麼是undefined,要麼是checked,同一個表單一直點選卻一點都不會發生改變,調試了一下,this裡的checked是會改變的,說明checkbox是有正常運作的,查了很久後,最我懷疑是$(this).attr('checked')這句代碼出了問題,果然往這個方向找有了收獲。
原來jquery 1.6以前用$(this).attr('checked')得到的是true/false,但到了1.6以後,$(this).attr('checked')就有點問題了。
解決方案如下:
1. 使用is()
例句: $(this).is(":checked"); // 注意是':checked',有冒号的!
2. 使用prop()方法,JQ1.6之後,可以通過attr方法去獲得屬性,通過prop方法去獲得特性,屬性指的是“name,id”等等,特性指的是“selectedIndex, tagName, nodeName”等等。
例句: $(this).prop('checked');
轉載于:https://www.cnblogs.com/linqingvoe/p/10773512.html