var SelectedRows = new Array(); // 所有选中的行对象 var ShiftStartRow = "" ; // Shift多选时存储开始行对象 var CurrentRow = "" ; // 当前行 // 保存记录行的颜色 var color = null ; // 选中行变色 function changeColor(E) ... { for(var i=1;i<E.parentElement.rows.length;i++)...{ E.parentElement.rows(i).style.backgroundColor="#FFFFFF"; } for(i=0;i<SelectedRows.length;i++)...{ SelectedRows[i].style.backgroundColor="#dbf0e4"; } if(CurrentRow!="")...{ CurrentRow.style.backgroundColor="#aaf8bb"; } } // 选行主函数 function onfocusit() ... { var iRow=window.event.srcElement; do...{ iRow=iRow.parentElement; }while(iRow.tagName!='TR') //Ctrl多选 if(event.ctrlKey)...{ var j=-1; for(i=0;i<SelectedRows.length;i++)...{ if(iRow==SelectedRows[i])...{ j=i; break; } } if(j!=-1)...{ for(i=j;i<SelectedRows.length-1;i++)...{ SelectedRows[i]=SelectedRows[i+1]; } SelectedRows.length=SelectedRows.length-1; CurrentRow=""; }else...{ SelectedRows[SelectedRows.length]=iRow; CurrentRow=iRow; } ShiftStartRow=iRow; } //Shift多选 else if(event.shiftKey)...{ if(ShiftStartRow!="")...{ var StartIndex=ShiftStartRow.rowIndex; var EndIndex=iRow.rowIndex; var oTable=iRow.parentElement; SelectedRows.length=0; if(StartIndex < EndIndex)...{ for(var i=StartIndex;i<EndIndex+1;i++)...{ SelectedRows.push(oTable.rows[i]); } } if(StartIndex >= EndIndex)...{ for(var i=EndIndex;i<StartIndex+1;i++)...{ SelectedRows.push(oTable.rows[i]); } } CurrentRow=iRow; } }else...{ SelectedRows.length=1; SelectedRows[0]=iRow; ShiftStartRow=iRow; CurrentRow=iRow; } changeColor(iRow); }