名字要一样的话
只有考虑用容器都包含了
<form name=hrong>
<span id="s1">
<input type=checkbox name=All onclick="checkAll('s1')">全选<br/>
<input type=checkbox name=mm onclick="checkItem('s1')"><br/>
<input type=checkbox name=mm onclick="checkItem('s1')"><br/>
<input type=checkbox name=mm onclick="checkItem('s1')"><br/>
<input type=checkbox name=mm onclick="checkItem('s1')"><br/>
<input type=checkbox name=mm onclick="checkItem('s1')"><br/><br/>
</span>
<span id="s2">
<input type=checkbox name=All onclick="checkAll('s2')">全选<br/>
<input type=checkbox name=mm onclick="checkItem('s2')"><br/>
<input type=checkbox name=mm onclick="checkItem('s2')"><br/>
<input type=checkbox name=mm onclick="checkItem('s2')"><br/>
<input type=checkbox name=mm onclick="checkItem('s2')"><br/>
<input type=checkbox name=mm onclick="checkItem('s2')"><br/>
</span>
</form>
<SCRIPT LANGUAGE="JavaScript">
function checkAll(str)
{
  var a = document.all(str);
  var n = a.children.length;
  for (var i=0; i<n; i++)
  a.children[i].checked = window.event.srcElement.checked;
}
function checkItem(str)
{
  var e = window.event.srcElement;
  var all = document.all(str);
  if (e.checked)
  {
    all.children[0].checked=true;
    for (var i=0; i<all.children.length; i++)
      if (!all.children[i].checked){ all.children[0].checked = false; break;}
  }
  else 
all.children[0].checked=false;
}
</SCRIPT>