標籤:target lan 沒有 div 應該 簡單 http keyword 相關
這天用到jQuery功能,想實現一個簡單的複選框動態全選或全不選,結果測試發現 attr(‘checked’,‘checked’);與attr(‘checked’,true); 都不好使,要麼第一次成功了,第二次調用就沒反應,完全不起作用了。那到底是什麼原因呢?
害得‘跑客教授’到處到網上搜 jQuery checkbox的操作,動態選擇的相關文章,都寫著是這樣的實現代碼
<span style="font-size:18px;">$(‘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‘);//不選選,刪除屬性</span>
但是測試結果發現,屢試不爽啊,選擇一次全選,再調用一次反選,再去調用全選就沒效果了。
難道是 removeAttr 的原因?還是‘跑客教授’使用過新的 jQuery 1.9.1版本。(還是說我要使用原生的javascript代碼來完成這項工作呢?)
這些都不是理由,理由應該 是自己沒有用好。不可能這麼牛比的架構這麼簡單的功能都不能實現(也不要輕意懷疑瀏覽器的問題)
最終解決方案
還是到官網,搜尋了’checkbox’,找到一文章,仔細查看了嚇,有一個類似的操作是
<span style="font-size:18px;">$(‘obj‘).prop(‘checked‘,true);$(‘obj‘).prop(‘checked‘,false);</span>
好了,擦亮你的眼睛,沒錯最後用的是 prop方法操作一切就OK啦。
jQuery 操作複選框(checkbox) attr checked不起作用