解決JQuery全選/反選第二次失效的問(wèn)題
最近在項(xiàng)目中,遇到一個(gè)問(wèn)題,測(cè)試全選/反選功能時(shí),第一次對(duì)母框進(jìn)行選中/非選中時(shí),能同步子框的全選/反選狀態(tài),之后再點(diǎn)擊母框,子框就沒(méi)反應(yīng)了。
原代碼大致結(jié)構(gòu)關(guān)鍵如下:
function selectAll(obj){
$('input[name="xxx[]"]').attr("checked",obj.checked);
}
<input type="checkbox" id="mother" name="mother" onclick="selectAll(this);"/>全選
<input type="checkbox" id="son1" name="xxx[]" />子框<input type="checkbox" id="son2" name="xxx[]" />子框<input type="checkbox" id="son3" name="xxx[]" />子框<input type="checkbox" id="son4" name="xxx[]" />子框
步驟一:嘗試正面剛一波:
function selectAll(obj){
if(obj.checked) {
$('input[name="xxx[]"]').attr("checked", true);
} else {
$('input[name="xxx[]"]').removeAttr("checked");
}
}
卒-----完全沒(méi)有效果,棄之。
步驟二:快速上網(wǎng)搜索一番,發(fā)現(xiàn)這個(gè)問(wèn)題比較常見(jiàn),在遇到過(guò)這個(gè)問(wèn)題的人里,我應(yīng)該排在千里之外了。點(diǎn)開(kāi)幾個(gè)看了,基本都是說(shuō)用prop替代attr便能解決,奈何如下:

然而項(xiàng)目上用的版本低于1.6并被告知最好不要更改版本,同棄之。
步驟三:無(wú)可奈何,JQuery棄之...嘗試改用原生js寫法,代碼如下:
function selectAll(obj){
var xxx = document.getElementsByName("xxx[]");
if(obj.checked) {
for(var i = 0;i < xxx.length;i++) {
xxx[i].checked = true;
}
} else {
for(var i = 0;i < xxx.length;i++) {
xxx[i].checked = false;
}
}
}
測(cè)試一下,順利解決。其實(shí)也算是個(gè)小問(wèn)題,不過(guò)給了我一些啟示,不能局限在一個(gè)框里,多換個(gè)角度思考問(wèn)題,往往能更好地去解決問(wèn)題。
以上這篇解決JQuery全選/反選第二次失效的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
jQuery簡(jiǎn)單實(shí)現(xiàn)上下,左右滑動(dòng)的方法
這篇文章主要介紹了jQuery簡(jiǎn)單實(shí)現(xiàn)上下,左右滑動(dòng)的方法,涉及jQuery動(dòng)態(tài)操作頁(yè)面元素的相關(guān)技巧,需要的朋友可以參考下2016-06-06
Jquery:ajax實(shí)現(xiàn)翻頁(yè)無(wú)刷新功能代碼
ajax實(shí)現(xiàn)翻頁(yè)在實(shí)際應(yīng)用中還是比較常見(jiàn)的,實(shí)現(xiàn)ajax翻頁(yè)有兩部分:js部分、html部分,具體如下,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08
jquery實(shí)現(xiàn)動(dòng)態(tài)添加附件功能
這篇文章主要為大家詳細(xì)介紹了jquery實(shí)現(xiàn)動(dòng)態(tài)添加附件功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
animate動(dòng)畫示例(淚奔的小孩)及stop和delay的使用
實(shí)現(xiàn)原理:停止動(dòng)畫,當(dāng)一個(gè)元素有一個(gè)動(dòng)畫隊(duì)列時(shí),停止的是當(dāng)前動(dòng)畫,緊接著執(zhí)行下一個(gè)動(dòng)畫,具體代碼如下,感興趣的朋友可以參考下哈,希望對(duì)你學(xué)習(xí)jquery動(dòng)畫有所幫助2013-05-05
jquery獲取input的value問(wèn)題說(shuō)明
剛開(kāi)始接觸jquery,很多東西不熟悉在用$("#id")來(lái)獲得頁(yè)面的input元素的時(shí)候,發(fā)現(xiàn)$("#id").value不能取到值2010-08-08
jQuery插件Skippr實(shí)現(xiàn)焦點(diǎn)圖幻燈片特效
Skippr 是一個(gè)超級(jí)簡(jiǎn)單的 jQuery 幻燈片插件。只是包括你的網(wǎng)頁(yè)中引入 jquery.skippr.css 和 jquery.skippr.js 文件就能使用了。Skippr 能夠自適應(yīng)窗口寬度,而且導(dǎo)航是獨(dú)特的條形導(dǎo)航。2015-04-04
jQuery學(xué)習(xí)筆記之創(chuàng)建DOM元素
這篇文章主要介紹了jQuery學(xué)習(xí)筆記之創(chuàng)建DOM元素的相關(guān)資料,需要的朋友可以參考下2015-01-01

