function select_all(obj, cName) {
 var checkObj = document.all(cName);
 for ( var i = 0; i < checkObj.length; i++) {
 if (obj.checked) {
 checkObj[i].checked = true;
 } else {
 checkObj[i].checked = false;
 } } //o = document.getElementsByName(cName);
 // for ( var i = 0; i < o.length; i++) {
 // o[i].checked = obj.checked; // } // for (i = 0; i < o.length; i++) {
 // o[i].checked = event.srcElement.checked;
 // } // for (i = 0; i < tag.length; i++) {
 // if (tag[i].type == "checkbox") {
 // if (c.checked) {
 // tag[i].checked = true;
 // } else {
 // tag[i].checked = false;
 // }
 // }
 // } // if (c.checked) {
 // for (i = 0; i < o.length; i++) {
 // o[i].checked = true;
 //} //}else {
 // for (i = 0; i < o.length; i++) {
 // o[i].checked = false;
 // }
 // }
}
用了几种方法写,都大同小异,在IE8中点全选的checkbox之后所有的选项都不自动选中,要点下鼠标才能选中,不知道是什么原因,但是在IE9中是可以的。。求助。。

解决方案 »

  1.   

    为了便于测试,请给出HTML部分。
      

  2.   

    <!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=utf-8" />
    <title>无标题文档</title>
    </head><body><input type="checkbox" class="chk" />
    <input type="checkbox" class="chk" />
    <input type="checkbox" class="chk" />
    <input type="checkbox" class="chk" />
    <input type="checkbox" class="chk" />
    <input type="checkbox" class="chk" /><br /><br />全选/反选<input type="checkbox" onclick="select_all(this, 'chk');" /><script type="text/javascript">
    function select_all(obj, clsName) {
    var chkObj = document.getElementsByTagName('input');
    for (var i = 0; i < chkObj.length; i ++) {
    if (chkObj[i].className == clsName) chkObj[i].checked = obj.checked;
    }
    }
    </script></body>
    </html>