function btnAll() {
        var hobbly = document.getElementsByName("cbAihao");
        var btnvalue = document.getElementById("btn2").value;
        if (btnvalue == "都喜欢") {
            for (i = 0; i < hobbly.length; i++) {
                hobbly[i].checked = true;
                document.getElementById("btn2").value = "都不喜欢";
            }
        }
        else {
            for (i = 0; i < hobbly.length; i++) {
                hobbly[i].checked = false;
                document.getElementById("btn2").value = "都喜欢";
            }
        }
    }for循环的条件不要<=,因为下标是从0开始的

解决方案 »

  1.   


    <!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">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script type="text/javascript" language="javascript">function btnAll(){
    var hobbly=document.getElementsByName("cbAihao");
    var btnvalue = document.getElementById("btn2").value;
     if(btnvalue=="都喜欢"){
    for(i=0;i<hobbly.length;i++)
    {
     hobbly[i].checked=true;
     document.getElementById("btn2").value="都不喜欢";
    }
      }
    else{
       for(i=0;i<hobbly.length;i++)
    {
    hobbly[i].checked=false;
    document.getElementById("btn2").value="都喜欢";
    }
         }
     }
    </script>
    </head><body>
    <form>
    <p>你喜欢喝哪一种咖啡呀</p>
     <input type="checkbox" name="cbAihao">拿铁<br>
    <input type="checkbox" name="cbAihao">蓝山咖啡<br>
    <input type="checkbox" name="cbAihao">卡布奇洛<br>
    <input type="checkbox" name="cbAihao">爱尔兰咖啡<br>
    <input type="button" value="都喜欢" id="btn2" onClick="btnAll()">
    </form>
    </body>
    </html>