<!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>复选框(checkbox)全选/全不选/返选</title>

<style>

body,dl,dt,dd,p {

margin: 0;

padding: 0;

}


body {

font-family: Tahoma;

font-size: 12px;

}


label,input,a {

vertical-align: middle;

}


label {

padding: 0 10px 0 5px;

}


a {

color: #09f;

text-decoration: none;

}


a:hover {

color: red;

}


dl {

width: 120px;

margin: 10px auto;

padding: 10px 5px;

border: 1px solid #666;

border-radius: 5px;

background: #fafafa;

}


dt {

padding-bottom: 10px;

border-bottom: 1px solid #666;

}


dt label {

font-weight: 700;

}


p {

margin-top: 10px;

}

</style>

<script type="text/javascript">

window.onload = function() {

var oA = document.getElementsByTagName("a")[0];

var oInput = document.getElementsByTagName("input");

var oLabel = document.getElementsByTagName("label")[0];

var isCheckAll = function() {

for (var i = 1, n = 0; i < oInput.length; i++) {

oInput[i].checked && n++

}

oInput[0].checked = n == oInput.length - 1;

oLabel.innerHTML = oInput[0].checked ? "全不选" : "全选"

};

//全选/全不选

oInput[0].onclick = function() {

for (var i = 1; i < oInput.length; i++) {

oInput[i].checked = this.checked

}

isCheckAll()

};

//反选

oA.onclick = function() {

for (var i = 1; i < oInput.length; i++) {

oInput[i].checked = !oInput[i].checked

}

isCheckAll()

};

//根据复选个数更新全选框状态

for (var i = 1; i < oInput.length; i++) {

oInput[i].onclick = function() {

isCheckAll()

}

}

}

</script>

</head>

<body>

<dl>

<dt>

<input type="checkbox" id="checkAll" /><label>全选</label><a

href="javascript:;">反选</a>

</dt>

<dd>

<p>

<input type="checkbox" name="item" /><label>选项(一)</label>

</p>

<p>

<input type="checkbox" name="item" /><label>选项(二)</label>

</p>

<p>

<input type="checkbox" name="item" /><label>选项(三)</label>

</p>

<p>

<input type="checkbox" name="item" /><label>选项(四)</label>

</p>

<p>

<input type="checkbox" name="item" /><label>选项(五)</label>

</p>

<p>

<input type="checkbox" name="item" /><label>选项(六)</label>

</p>

<p>

<input type="checkbox" name="item" /><label>选项(七)</label>

</p>

<p>

<input type="checkbox" name="item" /><label>选项(八)</label>

</p>

<p>

<input type="checkbox" name="item" /><label>选项(九)</label>

</p>

<p>

<input type="checkbox" name="item" /><label>选项(十)</label>

</p>

</dd>

</dl>

</body>

</html>