這天用到jQuery功能,想實現一個簡單的複選框動態全選或全不選,結果測試發現 attr(‘checked’,'checked’);與attr(‘checked’,true); 都很差使,要麼第一次成功了,第二次調用就沒反應,徹底不起做用了。那究竟是什麼緣由呢?javascript
害得‘跑客教授’處處到網上搜 jQuery checkbox的操做,動態選擇的相關文章,都寫着是這樣的實現代碼java
$('input[type=checkbox]').attr('checked','checked');//全選,設置屬性 $('input[type=checkbox]').attr('checked',true);//全選,設置屬性,經過true布爾值形式 $('input[type=checkbox]').attr('checked',false);//不選擇,布爾值形式 $('input[type=checkbox]').removeAttr('checked','checked');//不選選,刪除屬性
可是測試結果發現,屢試不爽啊,選擇一次全選,再調用一次反選,再去調用全選就沒效果了。
難道是 removeAttr 的緣由?仍是‘跑客教授’使用過新的 jQuery 1.9.1版本。(仍是說我要使用原生的javascript代碼來完成這項工做呢?)jquery
這些都不是理由,理由應該 是本身沒有用好。不可能這麼牛比的框架這麼簡單的功能都不能實現(也不要輕意懷疑瀏覽器的問題)瀏覽器
最終解決方案框架
仍是到官網,搜索了’checkbox’,找到一文章,仔細查看了嚇,有一個相似的操做是測試
$('obj').attr('checked',true); $('obj').prop('checked',true); $('obj').attr('checked',false); $('obj').prop('checked',false);
好了,擦亮你的眼睛,沒錯最後用的是 prop方法操做一切就OK啦。spa