$(req.rows).each(function (i, item) {
                var html = "<tr id='newtr'><td><input type='checkbox' name='chc' value='" + item.AREAID + "'  onclick='checkItem(this,'cc')' /></td><td>" + item.AREANAME + "</td><td>" + item.COMPANYNAME + "'</td><td>" + item.ADDRESS + "</td><td>" + item.ADMINISTRATOR + "</td><td> " + item.SERVERNUM + " </td><td>" + item.REMARK + "'</td><td>" + item.MISCODE + " </td><td>" + item.AREAIMAGE + "</td></tr>";
                $("#text").append(html);这是动态生成的checkbox框全选框<td><input type='checkbox' name='cc' id='check'onclick='checkAll(this,"chc")'/>     </td>
JS代码:

function checkAll(e,itemName){    //全选函数
    var aa = document.getElementsByName(itemName); 
 for(var i=0;i<aa.length;i++){
     aa[i].checked = e.checked;
    
 }
}function checkItem(e, allName) {   //当选取或取消选取没一个复选框时调用的函数    var aa = document.getElementsByName(allName)[0]; //全选框对象
    if (!e.checked) {      //如果是取消选取那么全选框就取消选取
        aa.checked = false;
    }
    else {                 //如果是选取,就要判断其他是否都已经全部选取了
        var ab = document.getElementsByName(e.name);
        for (var i = 0; i < ab.length; i++) {
            if (!ab[i].checked) {//如果有一个没有选上,那么就返回
                return;
            }
        }
        aa.checked = true;//如果其他都选上了,全选框就要选上
    }
}全选框checkboxjquery

解决方案 »

  1.   

    为什么全选框可以全选、而取消一个checkbox后全选依然勾着
      

  2.   

    你全选 checkbox的名称 与其它名称一样?
    还有你有用JQ吧,那就用 jQ实现 
      

  3.   

        function checkItem(e, allName) {
            var ab = document.getElementsByName(e.name);
            var Y=true;//假设已经是全选
            for (var i = 0; i < ab.length; i++) {
                if (!ab[i].checked) {
                    Y=false;
                    break;
                }
            }
            document.getElementsByName(allName)[0].checked = Y;//全选框对象
        }