demo引入jquery版本号为jquery-1.7.1.min.js
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style type="text/css">
html,body,p,ul,li,h1,h2,h3,h4,img,dl,dt,dd,ol{
padding: 0;
margin: 0;
border: none;
}
body{
font-family: Helvetica, Tahoma, Arial, "Microsoft YaHei", "微软雅黑", SimSun, "宋体", Heiti, "黑体", sans-serif;
font-size: 12px;
color: #333333;
}
/*checkBox*/
label {
display: inline-block;
vertical-align: middle;
}
h1{font-size: 18px;margin-bottom: 10px;}
.checkBox{margin: 20px 0 0 50px;}
.checkBox .all-top{margin-bottom: 5px;color: #58a200;font-weight: bold;}
.checkBox dl{
margin-bottom: 6px;
border-bottom: 1px dotted #ccc;
margin-left: 20px;
}
.checkBox dl dt{
font-weight: bold;
color:#D58C00;
}
.checkBox dl dd{
line-height: 14px; padding: 4px 0 4px 16px;
}
.checkBox dd span{
display: inline-block;
*display: inline;
width: 200px;
zoom:1;
font-weight: bold;
margin-bottom: 6px;
}
.checkBox dd label{font-weight: normal;cursor: pointer;}
.checkBox dd p label{margin-bottom:2px;}
.checkBox input[type="checkbox"]{
margin: -2px 4px 1px 0;
vertical-align:middle;
}
</style>
</head>
<body>
<div id="Role_menu_c" >
<form action="" method="post" >
<div class="checkBox">
<h1>内容一</h1>
<label class="all-top"><input type="checkbox">全选</label>
<dl>
<dt>
<label><input type="checkbox" />标题1</label>
</dt>
<dd>
<span>
<p>属性1</p>
<label><input type="checkbox" name="ckRead" />只读</label>
<label><input type="checkbox" name="ck" />维护</label>
</span>
<span>
<p>属性2</p>
<label><input type="checkbox" name="ckRead" />只读</label>
<label><input type="checkbox" name="ck" />维护</label>
</span>
<span>
<p>属性3</p>
<label><input type="checkbox" name="ckRead" />只读</label>
<label><input type="checkbox" name="ck" />维护</label>
</span>
<span>
<p>属性4</p>
<label><input type="checkbox" name="ckRead" />只读</label>
<label><input type="checkbox" name="ck" />维护</label>
</span>
</dd>
</dl>
<dl>
<dt>
<label><input type="checkbox" />标题2</label>
</dt>
<dd>
<span>
<p>属性1</p>
<label><input type="checkbox" name="ckRead" />只读</label>
<label><input type="checkbox" name="ck" />维护</label>
</span>
<span>
<p>属性2</p>
<label><input type="checkbox" name="ckRead" />只读</label>
<label><input type="checkbox" name="ck" />维护</label>
</span>
<span>
<p>属性3</p>
<label><input type="checkbox" name="ckRead" />只读</label>
<label><input type="checkbox" name="ck" />维护</label>
</span>
<span>
<p>属性4</p>
<label><input type="checkbox" name="ckRead" />只读</label>
<label><input type="checkbox" name="ck" />维护</label>
</span>
<span>
<p>属性5</p>
<label><input type="checkbox" name="ckRead" />只读</label>
<label><input type="checkbox" name="ck" />维护</label>
</span>
<span>
<p>属性6</p>
<label><input type="checkbox" name="ckRead" />只读</label>
<label><input type="checkbox" name="ck" />维护</label>
</span>
</dd>
</dl>
<dl>
<dt>
<label><input type="checkbox" />标题3</label>
</dt>
<dd>
<span>
<p>属性1</p>
<label><input type="checkbox" name="ckRead" />只读</label>
<label><input type="checkbox" name="ck" />维护</label>
</span>
<span>
<p>属性2</p>
<label><input type="checkbox" name="ckRead" />只读</label>
<label><input type="checkbox" name="ck" />维护</label>
</span>
<span>
<p>属性3</p>
<label><input type="checkbox" name="ckRead" />只读</label>
<label><input type="checkbox" name="ck" />维护</label>
</span>
</dd>
</dl>
<dl>
<dt>
<label><input type="checkbox" />标题4</label>
</dt>
<dd>
<span>
<p>属性1</p>
<label><input type="checkbox" name="ckRead" />只读</label>
<label><input type="checkbox" name="ck" />维护</label>
</span>
<span>
<p>属性2</p>
<label><input type="checkbox" name="ckRead" />只读</label>
<label><input type="checkbox" name="ck" />维护</label>
</span>
</dd>
</dl>
</div>
</form>
</div>
<div id="Role_message_c" >
<form action="" method="post" >
<div class="checkBox">
<h1>内容二</h1>
<label class="all-top"><input type="checkbox">全选</label>
<dl>
<dt>
<label><input type="checkbox" />level1</label>
</dt>
<dd>
<p>
<label><input type="checkbox" name="ck" />content description</label>
</p>
<p>
<label><input type="checkbox" name="ck" />content description content description content description</label>
</p>
<p>
<label><input type="checkbox" name="ck" />content description content description content description content description content description content description</label>
</p>
<p>
<label><input type="checkbox" name="ck" />content description</label>
</p>
<p>
<label><input type="checkbox" name="ck" />content description description description</label>
</p>
<p>
<label><input type="checkbox" name="ck" />content description</label>
</p>
<p>
<label><input type="checkbox" name="ck" />content description description description</label>
</p>
<p>
<label><input type="checkbox" name="ck" />content description</label>
</p>
<p>
<label><input type="checkbox" name="ck" />content description</label>
</p>
<p>
<label><input type="checkbox" name="ck" />content description</label>
</p>
<p>
<label><input type="checkbox" name="ck" />content description description description</label>
</p>
<p>
<label><input type="checkbox" name="ck" />content description</label>
</p>
<p>
<label><input type="checkbox" name="ck" />content description description description</label>
</p>
<p>
<label><input type="checkbox" name="ck" />content description</label>
</p>
<p>
<label><input type="checkbox" name="ck" />content description</label>
</p>
</dd>
</dl>
<dl>
<dt>
<label><input type="checkbox" />leve2</label>
</dt>
<dd>
<p>
<label><input type="checkbox" name="ck" />content description</label>
</p>
<p>
<label><input type="checkbox" name="ck" />content description</label>
</p>
</dd>
</dl>
<dl>
<dt>
<label><input type="checkbox" />level3</label>
</dt>
<dd>
<p>
<label><input type="checkbox" name="ck" />content description</label>
</p>
</dd>
</dl>
<dl>
<dt>
<label><input type="checkbox" />level4</label>
</dt>
<dd>
<p>
<label><input type="checkbox" name="ck" />content description</label>
</p>
</dd>
</dl>
</div>
</form>
</div>
<script type="text/javascript" src="http://code.hs-cn.com/jquery/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
$(function(){
roleCkAll();
});
function roleCkAll(){
$("dt").find(":checkbox").bind('click',function(event){ //dt中的全选按钮
event.stopPropagation();
var itemChk = $(this).closest("dl").find("dd :checkbox").not(":disabled,:hidden"),
itemChkDefault = itemChk.not("[name=ckRead]");
if(this.checked){
itemChk.filter("[name=ckRead]").attr("checked", false);
itemChkDefault.attr("checked", this.checked );
}else{
itemChk.attr("checked", this.checked );
}
checkTop($(this).closest("dl"));
});
$("dd").find(":checkbox").bind('click',function(){
var num = $(this).closest("dd").find("span").eq(0).find("label").length;
num = num==0?1:num;
$(this).parent().siblings("label").find(":checkbox").attr('checked',false);
var $tmp=$(this).closest("dd").find(":checkbox").not(":disabled,:hidden");
var len = $tmp.length/num;
var checked = len==$tmp.filter(':checked').not(":disabled,:hidden").length;
$(this).closest("dl").find("dt :checkbox").attr('checked',checked);
checkTop($(this).closest("dl"));
});
$(".checkBox .all-top").find(":checkbox").bind('click',function(event){ //有三层结构时的第一个全选
event.stopPropagation();
var itemChk = $(this).parents(".checkBox").find("dl input:checkbox").not(":disabled,:hidden"),
itemChkDefault = itemChk.not("[name=ckRead]");
if(this.checked){
itemChk.filter("[name=ckRead],[name=ck]").attr("checked", false);
itemChkDefault.attr("checked", this.checked );
}else{
itemChk.attr("checked", this.checked );
}
});
function checkTop(obj){
var checkBox = obj.closest(".checkBox");
var $tmp=checkBox.find("dt :checkbox").not(":disabled,:hidden,[name=ckRead]");
var checked = $tmp.length==$tmp.filter(':checked').not(":disabled,:hidden").length;
checkBox.find(".all-top :checkbox").attr('checked',checked);
}
}
</script>
</body>
</html>