<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!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=gb2312" />
<title>无标题文档</title>
</head><body>
<script language="JavaScript">
<!--
var Rows = new Array(); //所有选中的行对象
var ShiftStartRow = ""; //Shift多选时存储开始行对象
//选行主函数
function onfocusit()
{
iRow=window.event.srcElement;
do
{
iRow=iRow.parentElement;
}while(iRow.tagName!='TR')
//Ctrl多选
if(event.ctrlKey)
{
var j=-1;
for(i=0;i<Rows.length;i++)
{
if(iRow==Rows[i])
{
j=i;
break;
}
}
if(j!=-1)
{
for(i=j;i<Rows.length-1;i++)
{
Rows[i]=Rows[i+1];
}
Rows.length=Rows.length-1;
}
else
{
Rows[Rows.length]=iRow;
}
ShiftStartRow=iRow;
}//Shift多选
else if(event.shiftKey)
{
if(ShiftStartRow!="")
{
var StartIndex=ShiftStartRow.rowIndex;
var EndIndex=iRow.rowIndex;
var oTable=iRow.parentElement;
Rows.length=0;
if(StartIndex < EndIndex)
{
for(var i=StartIndex;i<EndIndex+1;i++)
{
Rows.push(oTable.rows[i]);
}
}
if(StartIndex >= EndIndex)
{
for(var i=EndIndex;i<StartIndex+1;i++)
{
Rows.push(oTable.rows[i]);
}
}
}
}
else
{
Rows.length=1;
Rows[0]=iRow;
ShiftStartRow=iRow;
}
changeColor(iRow);
}
//选中行变色
function changeColor(E)
{
for(var i=1;i<E.parentElement.rows.length;i++)
{
E.parentElement.rows(i).style.backgroundColor="#FFFFFF";
}
for(i=0;i<Rows.length;i++)
{
var cols= Rows[i].getElementsByTagName('td');
Rows[i].style.backgroundColor="#EEEEEE";
cols[1].childNodes[0].checked=true;
}
}
//删除行
function DeleteRow()
{
if(Rows.length==0)
{
alert("请选择要删除的行!");
return false;
}
for(i=0;i<Rows.length;i++)
{
Rows[i].parentElement.deleteRow(Rows[i].rowIndex)
}
Rows.length=0;
}
//复制行
function CopyRow()
{
if(Rows.length==0)
{
alert("请选择要复制的部件!");
return false;
}
for(i=0;i<Rows.length;i++)
{
oTable=Rows[i].parentElement;
iRowIndex=Rows[i].rowIndex;
oRow=oTable.insertRow(iRowIndex+1);
oRow.attachEvent("onclick",onfocusit);
oRow.attachEvent("onselectstart",returnfalse);
oRow.align=Rows[i].align; for(var j=0;j<oTable.rows(iRowIndex).cells.length;j++)
{
oTable.rows(iRowIndex+1).insertCell(j);
oTable.rows(iRowIndex+1).cells(j).innerHTML=oTable.rows(iRowIndex).cells(j).innerHTML;
oTable.rows(iRowIndex+1).cells(j).align=oTable.rows(iRowIndex).cells(j).align;
}
}
}
function returnfalse()
{
return false;
}
//-->
</script></head>
<body>
<input type="button" value="删除" onclick="DeleteRow()">
<input type="button" value="复制" onclick="CopyRow()">
注意:单击选择行,支持Ctrl、Shift键盘操作
<table border="1" width="100%">
<tr onclick="onfocusit()" onselectstart="return false"><td>1</td><td><input type="checkbox" name="checkbox" /></td></tr>
<tr onclick="onfocusit()" onselectstart="return false"><td>2</td><td><input type="checkbox" name="checkbox" /></td></tr>
<tr onclick="onfocusit()" onselectstart="return false"><td>3</td><td><input type="checkbox" name="checkbox" /></td></tr>
<tr onclick="onfocusit()" onselectstart="return false"><td>4</td><td><input type="checkbox" name="checkbox" /></td></tr>
<tr onclick="onfocusit()" onselectstart="return false"><td>5</td><td><input type="checkbox" name="checkbox" /></td></tr>
</table>
</body>
</html>
<!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=gb2312" />
<title>无标题文档</title>
</head><body>
<script language="JavaScript">
<!--
var Rows = new Array(); //所有选中的行对象
var ShiftStartRow = ""; //Shift多选时存储开始行对象
//选行主函数
function onfocusit()
{
iRow=window.event.srcElement;
do
{
iRow=iRow.parentElement;
}while(iRow.tagName!='TR')
//Ctrl多选
if(event.ctrlKey)
{
var j=-1;
for(i=0;i<Rows.length;i++)
{
if(iRow==Rows[i])
{
j=i;
break;
}
}
if(j!=-1)
{
for(i=j;i<Rows.length-1;i++)
{
Rows[i]=Rows[i+1];
}
Rows.length=Rows.length-1;
}
else
{
Rows[Rows.length]=iRow;
}
ShiftStartRow=iRow;
}//Shift多选
else if(event.shiftKey)
{
if(ShiftStartRow!="")
{
var StartIndex=ShiftStartRow.rowIndex;
var EndIndex=iRow.rowIndex;
var oTable=iRow.parentElement;
Rows.length=0;
if(StartIndex < EndIndex)
{
for(var i=StartIndex;i<EndIndex+1;i++)
{
Rows.push(oTable.rows[i]);
}
}
if(StartIndex >= EndIndex)
{
for(var i=EndIndex;i<StartIndex+1;i++)
{
Rows.push(oTable.rows[i]);
}
}
}
}
else
{
Rows.length=1;
Rows[0]=iRow;
ShiftStartRow=iRow;
}
changeColor(iRow);
}
//选中行变色
function changeColor(E)
{
for(var i=1;i<E.parentElement.rows.length;i++)
{
E.parentElement.rows(i).style.backgroundColor="#FFFFFF";
}
for(i=0;i<Rows.length;i++)
{
var cols= Rows[i].getElementsByTagName('td');
Rows[i].style.backgroundColor="#EEEEEE";
cols[1].childNodes[0].checked=true;
}
}
//删除行
function DeleteRow()
{
if(Rows.length==0)
{
alert("请选择要删除的行!");
return false;
}
for(i=0;i<Rows.length;i++)
{
Rows[i].parentElement.deleteRow(Rows[i].rowIndex)
}
Rows.length=0;
}
//复制行
function CopyRow()
{
if(Rows.length==0)
{
alert("请选择要复制的部件!");
return false;
}
for(i=0;i<Rows.length;i++)
{
oTable=Rows[i].parentElement;
iRowIndex=Rows[i].rowIndex;
oRow=oTable.insertRow(iRowIndex+1);
oRow.attachEvent("onclick",onfocusit);
oRow.attachEvent("onselectstart",returnfalse);
oRow.align=Rows[i].align; for(var j=0;j<oTable.rows(iRowIndex).cells.length;j++)
{
oTable.rows(iRowIndex+1).insertCell(j);
oTable.rows(iRowIndex+1).cells(j).innerHTML=oTable.rows(iRowIndex).cells(j).innerHTML;
oTable.rows(iRowIndex+1).cells(j).align=oTable.rows(iRowIndex).cells(j).align;
}
}
}
function returnfalse()
{
return false;
}
//-->
</script></head>
<body>
<input type="button" value="删除" onclick="DeleteRow()">
<input type="button" value="复制" onclick="CopyRow()">
注意:单击选择行,支持Ctrl、Shift键盘操作
<table border="1" width="100%">
<tr onclick="onfocusit()" onselectstart="return false"><td>1</td><td><input type="checkbox" name="checkbox" /></td></tr>
<tr onclick="onfocusit()" onselectstart="return false"><td>2</td><td><input type="checkbox" name="checkbox" /></td></tr>
<tr onclick="onfocusit()" onselectstart="return false"><td>3</td><td><input type="checkbox" name="checkbox" /></td></tr>
<tr onclick="onfocusit()" onselectstart="return false"><td>4</td><td><input type="checkbox" name="checkbox" /></td></tr>
<tr onclick="onfocusit()" onselectstart="return false"><td>5</td><td><input type="checkbox" name="checkbox" /></td></tr>
</table>
</body>
</html>
解决方案 »
- jquery 判断鼠标当前位置是在哪个元素上方
- 引用网页缩放的问题
- 《JS精粹》一书里不理解的部分求解(2)
- 求救!捕获事件,ie和firefox的区别,具体替换怎么写?
- 我在ASP中这样调用一个JS文件中的一个方法错在哪。高手指点。
- js判断输入,用正则表达式
- jquery tabs 局部刷新选卡,如何实现,求大神帮忙
- 如何完全屏蔽 shift + 左健 打开新窗口功能(在线等)
- 绑定在xml数据岛中显示的数据如何在页面上实现多条记录的选择!!!
- for in多重循环变量作用域的问题
- 请问,鼠标移到图片时,此图片放大,鼠标离开图片时,此图片还原,这效果如果实现??
- 相同的正则表达式和字符串,执行两次test,一次true一次false,为什么?
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!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=gb2312" />
<title>无标题文档</title>
</head><body>
<script language="JavaScript">
<!--
var Rows = new Array(); //所有选中的行对象
var cols = new Array();//所有选中的列对象
var ShiftStartRow = ""; //Shift多选时存储开始行对象
//选行主函数
function onfocusit()
{
iRow=window.event.srcElement;
do
{
iRow=iRow.parentElement;
}while(iRow.tagName!='TR')
//Ctrl多选
if(event.ctrlKey)
{
var j=-1;
for(i=0;i<Rows.length;i++)
{
if(iRow==Rows[i])
{
j=i;
break;
}
}
if(j!=-1)
{
for(i=j;i<Rows.length-1;i++)
{
Rows[i]=Rows[i+1];
}
Rows.length=Rows.length-1;
}
else
{
Rows[Rows.length]=iRow;
}
ShiftStartRow=iRow;
}//Shift多选
else if(event.shiftKey)
{
if(ShiftStartRow!="")
{
var StartIndex=ShiftStartRow.rowIndex;
var EndIndex=iRow.rowIndex;
var oTable=iRow.parentElement;
Rows.length=0;
if(StartIndex < EndIndex)
{
for(var i=StartIndex;i<EndIndex+1;i++)
{
Rows.push(oTable.rows[i]);
}
}
if(StartIndex >= EndIndex)
{
for(var i=EndIndex;i<StartIndex+1;i++)
{
Rows.push(oTable.rows[i]);
}
}
}
}
else
{
Rows.length=1;
Rows[0]=iRow;
ShiftStartRow=iRow;
}
changeColor(iRow);
}
//选中行变色
function changeColor(E)
{
for(var i=1;i<E.parentElement.rows.length;i++)
{ cols= E.parentElement.rows(i).getElementsByTagName('td');
E.parentElement.rows(i).style.backgroundColor="#FFFFFF";
cols[1].childNodes[0].checked=false;//取消checkbox选择
}
for(i=0;i<Rows.length;i++)
{
cols= Rows[i].getElementsByTagName('td');
Rows[i].style.backgroundColor="#EEEEEE"; //选中当前的行变色
cols[1].childNodes[0].checked=true;//checkbox选中
}
}
//删除行
function DeleteRow()
{
if(Rows.length==0)
{
alert("请选择要删除的行!");
return false;
}
for(i=0;i<Rows.length;i++)
{
Rows[i].parentElement.deleteRow(Rows[i].rowIndex)
}
Rows.length=0;
}
//复制行
function CopyRow()
{
if(Rows.length==0)
{
alert("请选择要复制的部件!");
return false;
}
for(i=0;i<Rows.length;i++)
{
oTable=Rows[i].parentElement;
iRowIndex=Rows[i].rowIndex;
oRow=oTable.insertRow(iRowIndex+1);
oRow.attachEvent("onclick",onfocusit);
oRow.attachEvent("onselectstart",returnfalse);
oRow.align=Rows[i].align; for(var j=0;j<oTable.rows(iRowIndex).cells.length;j++)
{
oTable.rows(iRowIndex+1).insertCell(j);
oTable.rows(iRowIndex+1).cells(j).innerHTML=oTable.rows(iRowIndex).cells(j).innerHTML;
oTable.rows(iRowIndex+1).cells(j).align=oTable.rows(iRowIndex).cells(j).align;
}
}
}
function returnfalse()
{
return false;
}
//-->
</script></head>
<body>
<input type="button" value="删除" onclick="DeleteRow()">
<input type="button" value="复制" onclick="CopyRow()">
注意:单击选择行,支持Ctrl、Shift键盘操作
<table border="1" width="100%">
<tr><td colspan="2" onselectstart="return false">-------------</td></tr>
<tr onclick="onfocusit()" onselectstart="return false"><td>1</td><td><input type="checkbox" name="checkbox" /></td></tr>
<tr onclick="onfocusit()" onselectstart="return false"><td>2</td><td><input type="checkbox" name="checkbox" /></td></tr>
<tr onclick="onfocusit()" onselectstart="return false"><td>3</td><td><input type="checkbox" name="checkbox" /></td></tr>
<tr onclick="onfocusit()" onselectstart="return false"><td>4</td><td><input type="checkbox" name="checkbox" /></td></tr>
<tr onclick="onfocusit()" onselectstart="return false"><td>5</td><td><input type="checkbox" name="checkbox" /></td></tr>
</table>
</body>
</html>
<!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=gb2312" />
<title>无标题文档</title>
</head><body>
<script language="JavaScript">
<!--
var Rows = new Array(); //所有选中的行对象
var cols = new Array();//所有选中的列对象
var ShiftStartRow = ""; //Shift多选时存储开始行对象
//选行主函数
function onfocusit()
{
iRow=window.event.srcElement;
do
{
iRow=iRow.parentElement;
}while(iRow.tagName!='TR')
//Ctrl多选
if(event.ctrlKey)
{
var j=-1;
for(i=0;i<Rows.length;i++)
{
if(iRow==Rows[i])
{
j=i;
break;
}
}
if(j!=-1)
{
for(i=j;i<Rows.length-1;i++)
{
Rows[i]=Rows[i+1];
}
Rows.length=Rows.length-1;
}
else
{
Rows[Rows.length]=iRow;
}
ShiftStartRow=iRow;
}//Shift多选
else if(event.shiftKey)
{
if(ShiftStartRow!="")
{
var StartIndex=ShiftStartRow.rowIndex;
var EndIndex=iRow.rowIndex;
var oTable=iRow.parentElement;
Rows.length=0;
if(StartIndex < EndIndex)
{
for(var i=StartIndex;i<EndIndex+1;i++)
{
Rows.push(oTable.rows[i]);
}
}
if(StartIndex >= EndIndex)
{
for(var i=EndIndex;i<StartIndex+1;i++)
{
Rows.push(oTable.rows[i]);
}
}
}
}
else
{
Rows.length=1;
Rows[0]=iRow;
ShiftStartRow=iRow;
}
changeColor(iRow);
}
//选中行变色
function changeColor(E)
{
for(var i=1;i<E.parentElement.rows.length;i++)
{ if(E!=E.parentElement.rows(i)){
cols= E.parentElement.rows(i).getElementsByTagName('td');
E.parentElement.rows(i).style.backgroundColor="#FFFFFF";
cols[1].childNodes[0].checked=false;}
}
for(i=0;i<Rows.length;i++)
{
cols= Rows[i].getElementsByTagName('td');
if(cols[1].childNodes[0].checked){
Rows[i].style.backgroundColor="#FFFFFF";
cols[1].childNodes[0].checked=false;
}
else{
Rows[i].style.backgroundColor="#EEEEEE";
cols[1].childNodes[0].checked=true;
}
}
}
//删除行
function DeleteRow()
{
if(Rows.length==0)
{
alert("请选择要删除的行!");
return false;
}
for(i=0;i<Rows.length;i++)
{
Rows[i].parentElement.deleteRow(Rows[i].rowIndex)
}
Rows.length=0;
}
//复制行
function CopyRow()
{
if(Rows.length==0)
{
alert("请选择要复制的部件!");
return false;
}
for(i=0;i<Rows.length;i++)
{
oTable=Rows[i].parentElement;
iRowIndex=Rows[i].rowIndex;
oRow=oTable.insertRow(iRowIndex+1);
oRow.attachEvent("onclick",onfocusit);
oRow.attachEvent("onselectstart",returnfalse);
oRow.align=Rows[i].align; for(var j=0;j<oTable.rows(iRowIndex).cells.length;j++)
{
oTable.rows(iRowIndex+1).insertCell(j);
oTable.rows(iRowIndex+1).cells(j).innerHTML=oTable.rows(iRowIndex).cells(j).innerHTML;
oTable.rows(iRowIndex+1).cells(j).align=oTable.rows(iRowIndex).cells(j).align;
}
}
}
function returnfalse()
{
return false;
}
//-->
</script></head>
<body>
<input type="button" value="删除" onclick="DeleteRow()">
<input type="button" value="复制" onclick="CopyRow()">
注意:单击选择行,支持Ctrl、Shift键盘操作
<table border="1" width="100%">
<tr><td colspan="2" onselectstart="return false">-------------</td></tr>
<tr onclick="onfocusit()" onselectstart="return false"><td>1</td><td><input type="checkbox" name="checkbox" /></td></tr>
<tr onclick="onfocusit()" onselectstart="return false"><td>2</td><td><input type="checkbox" name="checkbox" /></td></tr>
<tr onclick="onfocusit()" onselectstart="return false"><td>3</td><td><input type="checkbox" name="checkbox" /></td></tr>
<tr onclick="onfocusit()" onselectstart="return false"><td>4</td><td><input type="checkbox" name="checkbox" /></td></tr>
<tr onclick="onfocusit()" onselectstart="return false"><td>5</td><td><input type="checkbox" name="checkbox" /></td></tr>
</table>
</body>
</html>加了一个再次点击该行,checkbox取消勾选功能
function changeColor(E)
{
for(var i=1;i<E.parentElement.rows.length;i++)
{
cols= E.parentElement.rows(i).getElementsByTagName('td');
if(E!=E.parentElement.rows(i)){//判断是否为当前行
if(ctrlShift==0){//判断是否曾经用过ctrl或Shift
E.parentElement.rows(i).style.backgroundColor="#FFFFFF";
cols[1].childNodes[0].checked=false;
}
}
}
for(i=0;i<Rows.length;i++)
{
cols= Rows[i].getElementsByTagName('td');
if(cols[1].childNodes[0].checked){//判断当前行是否为选中状态
Rows[i].style.backgroundColor="#FFFFFF";
cols[1].childNodes[0].checked=false;
}
else{
Rows[i].style.backgroundColor="#EEEEEE";
cols[1].childNodes[0].checked=true;
}
}
}
在FF下主要这2个的判断,做一下这2个的兼容,基本就兼容了
自己改去吧下次有点诚意,不然没人光顾你的,问这种少有多种效果的,要弄个100-300分的,肯定N多人来