在前端開發(fā)中,jQuery是很常用的一種框架,它提供了很多方便的功能,比如操作DOM和事件處理等。不過,在使用jQuery的過程中,我們可能會(huì)遇到一些問題,其中之一就是jQuery的checked屬性無效的情況。
$(document).ready(function(){ $("input[type='checkbox']").click(function(){ if($(this).prop("checked") == true){ console.log("選中了"); }else{ console.log("取消了"); } }); });
在上面的代碼中,我們監(jiān)聽了checkbox的click事件,并在點(diǎn)擊后輸出選中狀態(tài)。但是,當(dāng)我們測(cè)試時(shí)發(fā)現(xiàn),無論怎么點(diǎn)擊,都無法輸出選中狀態(tài)。這是為什么呢?
實(shí)際上,這是因?yàn)閖Query中的checked屬性是不支持批量操作的。例如,當(dāng)你使用$("input[type='checkbox']").prop("checked", true);來勾選所有的checkbox時(shí),它是無效的。相反的,它只能用于對(duì)單個(gè)元素進(jìn)行操作,如:$("input[name='example']").prop("checked", true);
那么,如何解決這個(gè)問題呢?我們可以使用.each()方法來遍歷所有的checkbox,并給它們分別設(shè)置checked屬性。代碼如下:
$(document).ready(function(){ $("input[type='checkbox']").click(function(){ if($(this).prop("checked") == true){ console.log("選中了"); }else{ console.log("取消了"); } }); $("input[type='button']").click(function(){ $("input[type='checkbox']").each(function(){ $(this).prop("checked", true); }); }); });
現(xiàn)在,我們就可以愉快地對(duì)所有的checkbox進(jìn)行勾選了。