jquery的attr()函式導致全選和不全選效果只有第一次有效
全選和不全選效果這個大家應該都很熟悉,特別是在網站後臺管理或者個人中心這樣的功能頁面使用更加頻繁,所以對於此效果的掌握也是非常必要的,但是可能很多朋友在編寫此功能的時候遇到一些意想不到的問題,那就是程式碼好像是沒有任何問題,但是就是不能夠正確執行,最常見的就是第一次可以全選,但是以後的操作完全失效了,程式碼如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>核取方塊全選和取消程式碼-螞蟻部落</title> <script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script> <script type="text/javascript"> $(function(){ $("#CheckAll").click(function(){ var flag=$(this).attr("checked"); if(flag){ $("#flag").text("取消"); } else{ $("#flag").text("全選"); } $("[name=subBox]:checkbox").each(function(){ $(this).attr("checked",flag); }) }) }) </script> </head> <body> <div> <input id="CheckAll" type="checkbox" /><span id="flag">全選</span> <input name="subBox" type="checkbox" />螞蟻部落一 <input name="subBox" type="checkbox" />螞蟻部落二 <input name="subBox" type="checkbox" />螞蟻部落三 <input name="subBox" type="checkbox" />螞蟻部落四 </div> </body> </html>
上面的程式碼驗證了此種錯誤現象,下面介紹一下出現此種問題的原因:
這種現象主要是attr()函式的返回值造成的,如果核取方塊選中,那麼它的返回值是true,但是如果不選中,那麼返回值是undefined,所以$(this).attr("checked",flag)可能會是: $(this).attr("checked",undefined),所以就不能實現我們的要求。
解決方案:
只要將attr()函式修改為prop()函式即可,如果核取方塊選中,那麼返回值是true,如果沒有返回值是false。
相關文章
- jquery中attr和prop的區別+jquery實現全選全不選jQuery
- jQuery核取方塊全選和全不選效果jQuery
- jQuery核取方塊全選和全不選效果程式碼jQuery
- jQuery----函式和選擇器jQuery函式
- jQuery 實現checkBox全選效果jQuery
- JavaScript checkbox全選和全不選效果JavaScript
- js核取方塊全選和取消全選效果JS
- JavaScript 核取方塊全選和取消全選效果JavaScript
- prop()函式和attr()函式的區別函式
- javascript核取方塊全選和反選效果JavaScript
- javascript checkbox核取方塊全選和取消全選效果JavaScript
- jQuery核取方塊checkbox的全選和反選jQuery
- 具有響應式效果的導航選單
- 全選練習-原生版和jQueryjQuery
- jQuery 緩衝效果二級導航下拉選單jQuery
- jquery實現checkbox核取方塊全選效果jQuery
- jQuery如何實現核取方塊全選和全不選jQuery
- 原生js實現的核取方塊的全選和全不選效果JS
- Checkbox點選多次失效原因,源於Jquery中.attr和.prop的區別jQuery
- js實現的響應式導航選單效果JS
- 全選與反選(dom與jquery比較)jQuery
- jquery實現的全選和刪除功能外掛jQuery
- jquery prop和attr的區別jQuery
- 導航選單(動畫)--- jQuery動畫jQuery
- 25 個響應式的 jQuery 導航選單外掛jQuery
- 【常用jQuery程式碼段】checkbox全選/反選jQuery
- jQuery attr()jQuery
- jQuery的prop和attr方法比較jQuery
- jquery中prop和attr的區別jQuery
- Jquery中attr和prop的區別jQuery
- Jquery中.attr()和.data()的區別jQuery
- jQuery滑動導航選單jQuery
- 正規表示式exec()函式只有第一執行有效分析函式
- javascript函式中的動作只有執行後才會有效JavaScript函式
- SVM 的核函式選擇和調參函式
- Jquery實現頁面的新增、刪除、全選、取消全選、漸變色jQuery
- transition第一次沒有效果
- React實現全選和反選React