1. 程式人生 > >jquery中checkbox選中的問題之prop&attr惹的禍

jquery中checkbox選中的問題之prop&attr惹的禍

一個網上很多的例子如下:

    <!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>

執行後,在火狐下面發現一個問題百思不得其解
問題描述:第一次點全選可以,然後點選全不選,接著再點選全選、全不選、反選就沒了反應,後來用其他瀏覽器發下可以,所以感覺是相容性的問題,後來查閱資料發現果然是的,參考地址http://jquery.com/
解決方法:將attr換為prop即可,經過驗證各個瀏覽器都是好的,官網說明是在1.6之後建議用prop,在此記錄以備後用
下為效果圖
這裡寫圖片描述