jquery中checkbox選中的問題之prop&attr惹的禍,jquerycheckbox
一個網上很多的例子如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>test</title> <script type="text/javascript" src="jquery-1.9.1.js"></script> <script type="text/javascript"> $(function () { // 全選 $("#btnCheckAll").bind("click", function () { $("[name = chkItem]:checkbox").attr("checked", true); }); // 全不選 $("#btnCheckNone").bind("click", function () { $("[name = chkItem]:checkbox").attr("checked", false); }); // 反選 $("#btnCheckReverse").bind("click", function () { $("[name = chkItem]:checkbox").each(function () { $(this).attr("checked", !$(this).attr("checked")); }); }); // 全不選 $("#btnSubmit").bind("click", function () { var result = new Array(); $("[name = chkItem]:checkbox").each(function () { if ($(this).is(":checked")) { result.push($(this).attr("value")); } }); alert(result.join(",")); }); }); </script></head><body> <div> <input name="chkItem" type="checkbox" value="今日話題" />今日話題 <input name="chkItem" type="checkbox" value="視覺焦點" />視覺焦點 <input name="chkItem" type="checkbox" value="財經" />財經 <input name="chkItem" type="checkbox" value="汽車" />汽車 <input name="chkItem" type="checkbox" value="科技" />科技 <input name="chkItem" type="checkbox" value="房產" />房產 <input name="chkItem" type="checkbox" value="旅遊" />旅遊 </div> <div> <input id="btnCheckAll" type="button" value="全選" /> <input id="btnCheckNone" type="button" value="全不選" /> <input id="btnCheckReverse" type="button" value="反選" /> <input id="btnSubmit" type="button" value="提交" /> </div></body></html>
運行後,在Firefox下面發現一個問題百思不得其解
問題描述:第一次點全選可以,然後點擊全不選,接著再點擊全選、全不選、反選就沒了反應,後來用其他瀏覽器發下可以,所以感覺是相容性的問題,後來查閱資料發現果然是的,參考地址http://jquery.com/
解決方案:將attr換為prop即可,經過驗證各個瀏覽器都是好的,官網說明是在1.6之後建議用prop,在此記錄以備後用
下為