<body >
<form>
<table >
<tr id="item1" onclick="checkSelect(this)" ><td>11111111</td></tr>
....
<tr id="item20" onclick="checkSelect(this)"><td>222222</td></tr>
</table>
<form>
<script>
function checkSelect(i){
  if (window.event.shiftKey)
   i.style.backgroundColor='#FFCC66'
  else
   i.style.backgroundColor='#FFffff'
}
</script>
</BODY>

解决方案 »

  1.   

    laughsmile(海边的星空) 说的这个不错,值得学习!
      

  2.   

    可能是我说的不清楚吧。
    我的意思是按住 Shift键不放 选种第一行的多选框,再选第六行,一次性把第一至第六行的多选框都选种。
      

  3.   

    很无聊,就写了一个。
    按住Shift,反向选择是取消,正向选择是选中。支持Ctrl键的连选<html>
    <body onload="initObjects()">
    <form><TABLE>
    <TR onclick="checkSelect(this)">
    <TD><INPUT TYPE="checkbox" NAME="boxitem">111111</TD>
    </TR>
    <TR onclick="checkSelect(this)">
    <TD><INPUT TYPE="checkbox" NAME="boxitem">222222</TD>
    </TR>
    <TR onclick="checkSelect(this)">
    <TD><INPUT TYPE="checkbox" NAME="boxitem">333333</TD>
    </TR>
    <TR onclick="checkSelect(this)">
    <TD><INPUT TYPE="checkbox" NAME="boxitem">444444</TD>
    </TR>
    <TR onclick="checkSelect(this)">
    <TD><INPUT TYPE="checkbox" NAME="boxitem">555555</TD>
    </TR>
    <TR onclick="checkSelect(this)">
    <TD><INPUT TYPE="checkbox" NAME="boxitem">666666</TD>
    </TR>
    <TR onclick="checkSelect(this)">
    <TD><INPUT TYPE="checkbox" NAME="boxitem">777777</TD>
    </TR>
    <TR onclick="checkSelect(this)">
    <TD><INPUT TYPE="checkbox" NAME="boxitem">888888</TD>
    </TR>
    <TR onclick="checkSelect(this)">
    <TD><INPUT TYPE="checkbox" NAME="boxitem">999999</TD>
    </TR>
    </TABLE></form><script>var selectedIndex = -1;
    var tmpSelectedIndex = -1;var itemsStatus = [];
    var alltr = [];
    var allcheckbox = [];function initObjects()
    {
    alltr = document.all.tags("tr"); var allinput = document.all.tags("input");
    var checkboxLength = 0; for (var i=0;i<allinput.length;i++)
    {
    if (allinput[i].type == "checkbox")
    {
    allcheckbox[checkboxLength] = allinput[i];
    itemsStatus[i] = "0";
    checkboxLength ++;
    }
    }
    }function checkSelect(obj){ var objIndex = -1;

    for (var i=0;i<alltr.length;i++)
    {
    if (obj == alltr[i])
    {
    objIndex = i;
    break;
    }
    }

    if (window.event.shiftKey)
    {
    if (selectedIndex == -1)
    {
    selectItem(objIndex);
    selectedIndex = objIndex;
    }else
    {
    selectItem(selectedIndex,objIndex)
    }
    }else if (window.event.ctrlKey)
    {
    selectItem(objIndex);
    selectedIndex = objIndex;
    }else
    {
    selectItem(objIndex);
    clearAllOtherSelected(objIndex);
    selectedIndex = objIndex;
    }
    }function selectItem(beginIdx,endIdx)
    {
    selectTr(beginIdx,endIdx);
    selectCheckbox(beginIdx,endIdx);
    }function selectTr(beginIdx,endIdx)
    {
    var itemFlag = false;
    if (endIdx != null)
    {
    if (beginIdx < endIdx)
    {
    itemFlag = true;
    for (var i=beginIdx;i<=endIdx;i++)
    {
    setTr(i,itemFlag);
    }
    }else if (beginIdx > endIdx)
    {
    itemFlag = false;
    for (var i=endIdx;i<=beginIdx;i++)
    {
    setTr(i,itemFlag);
    }
    }else
    {
    itemFlag = isItemNotSelected(beginIdx);
    setTr(beginIdx,itemFlag);
    }
    }else
    {
    itemFlag = isItemNotSelected(beginIdx);
    setTr(beginIdx,itemFlag);
    }
    }function selectCheckbox(beginIdx,endIdx)
    {
    var itemFlag = false;
    if (endIdx != null)
    {
    if (beginIdx < endIdx)
    {
    itemFlag = true;
    for (var i=beginIdx;i<=endIdx;i++)
    {
    setCheckbox(i,itemFlag);
    setItemSatus(i,itemFlag);
    }
    }else if (beginIdx > endIdx)
    {
    itemFlag = false;
    for (var i=endIdx;i<=beginIdx;i++)
    {
    setCheckbox(i,itemFlag);
    setItemSatus(i,itemFlag);
    }
    }else
    {
    itemFlag = isItemNotSelected(beginIdx);
    setCheckbox(beginIdx,itemFlag);
    setItemSatus(beginIdx,itemFlag);
    }
    }else
    {
    itemFlag = isItemNotSelected(beginIdx);
    setCheckbox(beginIdx,itemFlag);
    setItemSatus(beginIdx,itemFlag);
    }
    }function isItemNotSelected(idx)
    {
    if (itemsStatus[idx] == null || itemsStatus[idx] == "0")
    return true;
    else
    return false;
    }function setCheckbox(idx,selectFlag)
    {
    allcheckbox[idx].checked = selectFlag;
    }function setTr(idx,selectFlag)
    {
    if (selectFlag)
    {
    alltr[idx].style.backgroundColor = "#FFCC66";
    }else
    {
    alltr[idx].style.backgroundColor = "#FFFFFF";
    }
    }function setItemSatus(idx,selectFlag)
    {
    if (selectFlag)
    {
    itemsStatus[idx] = "1";
    }else
    {
    itemsStatus[idx] = "0";
    }
    }function clearAllSelected()
    {
    for (var i=0;i<itemsStatus.length;i++)
    {
    if (itemsStatus[i] == "1")
    {
    setTr(i,false);
    setCheckbox(i,false);
    setItemSatus(i,false);
    }
    }
    }function clearAllOtherSelected(idx)
    {
    for (var i=0;i<itemsStatus.length;i++)
    {
    if (idx != i && itemsStatus[i] == "1")
    {
    setTr(i,false);
    setCheckbox(i,false);
    setItemSatus(i,false);
    }
    }
    }</script>
    </BODY>
    </html>