天天看點

點選checkbox後,$(this).attr('checked')得到的值不會發生改變

 這兩天遇到一個問題,就是在點選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

繼續閱讀