上一篇講到:第一次點(diǎn)擊全選按鈕input顯示對(duì)勾,第二次則不顯示,需要用prop來添加checked屬性。
但是用prop會(huì)出現(xiàn)一個(gè)問題,對(duì)勾顯示,而checked屬性不會(huì)被添加(比如:$("input[type='checkbox'][name='che']").attr("checked") 獲取結(jié)果為undefined),這樣就無法通過if語句判斷是否選中,從而實(shí)現(xiàn)反選功能。
我們先來理一下思路:既然“反選”功能的實(shí)現(xiàn)是通過判斷是否有checked屬性,所以當(dāng)每次執(zhí)行“全選”“反選”功能時(shí),把checked屬性都清除掉,這樣之前重復(fù)添加的checked屬性每次都會(huì)進(jìn)行清除。示例代碼如下:
//全選 $("#quanxuan").click(function(){ $("#tb").find("input[type='checkbox'][name='che']").removeAttr("checked"); $("#tb").find("input[type='checkbox'][name='che']").prop("checked", true); }); //反選 $("#fanxuan").click(function(){ $("#tb").find("input[type='checkbox'][name='che']").each(function(){ if($(this).is(":checked")){ $(this).removeAttr("checked"); $(this).prop("checked",false); }else{ $(this).removeAttr("checked"); $(this).prop("checked","checked"); } }); });
目前只能想到這種冗余的辦法了,日后遇到新的解決方法再補(bǔ)充。
以上所述是小編給大家介紹的關(guān)于input全選反選惡心的異常情況,非常不錯(cuò),具有參考借鑒價(jià)值,希望對(duì)大家有所幫助!