<input type=checkbox name=mm value=a onclick="checkItem(this, 'mmAll')"><br>
<input type=checkbox name=mm value=b onclick="checkItem(this, 'mmAll')"><br>
<input type=checkbox name=mm value=c onclick="checkItem(this, 'mmAll')"><br>
<input type=checkbox name=mm value=d onclick="checkItem(this, 'mmAll')"><br>
<input type=checkbox name=mm value=e onclick="checkItem(this, 'mmAll')"><br><br>
<input type=checkbox name=mmAll onclick="checkAll(this, 'mm')">全选与不全选的切换

<script language=Javascript>
//函数。。。
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 all = document.getElementsByName(allName)[0];//返回一个具有相同属性的name集合.并取出第一条.因为只有一个.嘿嘿
  if(!e.checked) all.checked = false;//如果当前没被选中(也就是有所有的checkbox有一个没被选中..那么全选的checkbox就处于为被选中状态)
  var aa = document.getElementsByName(e.name); //返回一个具有相同属性的name集合
  for (var i=0; i<aa.length; i++)//进入循环依次查询name为mm的checkbox状态。
  {
  if(!aa[i].checked) return false //如果有一未被选中..那么就退出函数。。
  }
  all.checked = true; //如果所有的都被选中了。那么全选checkbox的状态也为选中状态!
}
</script>