废话不多说,直接上图上代码:

实现效果:

1、选中title的复选框,则td里的复选框全部选中;取消title的复选框,则td里的复选框全部取消;

2、当td里的复选框宣布选中,则title里的复选框也选中;如果td里的复选框只有部分选中,则title里的复选框不选中;

js 代码:

// 勾选或取消勾选全选复选框,参数:1.tableId复选框所在table的ID
// 2.checkAllName=全选checkbox对象名称,3.name=单个单选框名称
function checkBoxOnClick(tableId, checkAllName, name) {
    $("#" + tableId + " tbody").on("click","tr td input[name='" + name + "']",
        function() {
            if ($(this).is(":checked") == true) {
                // 如果当前框被选中,则判断是否需要勾选全选框
                var checkbox = $("input[name='" + name + "']");
                var length = $(checkbox).length;
                if (length > 0) {
                    for (var i = 0; i < length; i++) {
                        if ($(checkbox[i]).is(":checked") != true) {
                            break;// 如果有未勾选的选择框,不需要勾选全选,跳出循环
                        }
                        if (i == length - 1) {
                            // 如果到最后一个选择框仍然是勾选状态,即所有选择框都被勾选,则勾选全选框
                            $("input[name='" + checkAllName + "']")
                                    .prop("checked", true);
                            $("input[name='" + checkAllName + "']")
                                    .prop("title", "全不选");
                        }
                    }
                }
            } else {
                // 如果当前选择框未勾选,则取消全选框勾选状态
                $("input[name='" + checkAllName + "']").prop(
                        "checked", false);
                $("input[name='" + checkAllName + "']").prop(
                        "title", "全选");
            }
        }
    );
}

使用:

//勾选或取消全选
checkBoxOnClick("myTable","checkAll","checkOne");

  

12-30 21:27