87,997
社区成员




<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Dom-table</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link type="text/css" rel="stylesheet" href="../css/editTable.css" />
<script languag="javascript">
function changeColorEven(){
//alert("********");
var tab = document.getElementsByTagName("tbody")[0]; //先将tbody对象取出
var tabrow = tab.rows; //获取当前表格中行的集合
for (var i=0; i<tabrow.length ; i++ )
{
if (i%2 == 0)
{
var tabrows = tabrow[i];
tabrows.style.cssText = "background:#999999"; //将行数为偶数行的背景色改为灰色
} //end if
} //end for
/*
//获取每行每列的第一个td对象
for (var a=1; a<tabrow.length ; a++)
{
var tabcell = tabrow[a].cells;
var tabc = tabcell[0];
//alert(tabc);
var tabtd = tabc.firstChild;
}
*/
var tmpArray = new Array(); //定义一个临时数组
for (var i=0; i<tabrow.length ; i++ )
{
var tabcel = tabrow[i].all; //获取列数
//alert(tabcel.length);
for (var k=0; k<tabcel.length ; k++ )
{
var tabk = tabcel[k]; // 将列数集合给予tabk
var cellObj = tabk.tagName; //获取每列的标签名
//alert(cellObj.length);
if (cellObj == "TD") //删选出标签为td的对象
{
//alert(cellObj);
//alert(cellObj.length);
if (k%2==0)
{
//alert(tabcel[k]);
tmpArray.push(tabcel[k]); //将取出的每行第一列放入临时数组
} //end if
} //end if
} //end for
} //end for
//alert(tmpArray);
for (var j=0; j<tmpArray.length ; j++ )
{
tmpArray[j].attachEvent("onclick",setInput); //使单击td产生事件
} //end for
function setInput(eve){
//alert("****");
var tdsrc = eve.srcElement; //将单击的原对象赋予tdsrc
var tdText = tdsrc.innerText; //将td内容存于变量tdText中,以便多次使用
//alert(tdsrc);
var tdput = document.createElement("input"); //创建input对象
tdput.type = "text";
tdput.id = "tdtxt";
tdput.style.border = 0 ;
tdput.style.width = "98%";
tdput.style.fontSize = tdsrc.currentStyle.fontSize;
tdput.style.backgroundColor = tdsrc.currentStyle.backgroundColor ; //将原有css样式赋给现有的input对象
tdput.value = tdsrc.innerText; //将原对象值赋给新建的input.value中
tdsrc.innerText = "";
tdsrc.insertAdjacentElement("afterBegin",tdput); //将创建的tdput-input对象放入原对象tdsrc中
tdput.select(); //选取密码域中的文本
tdput.focus(); //获取输入框的焦点
tdput.attachEvent("onclick",stopEvent); //添加阻止事件
tdput.attachEvent("onkeydown",returnValue); //添加改变输入值事件
function returnValue(e){
var tdput = document.getElementById("tdtxt");
var retValue = e.keyCode; //返回键盘值
//alert(tdput.value);
//alert(retValue);
if (retValue == 13)
{
tdsrc.innerText = tdput.value; //将输入的值赋给td
}else if (retValue == 27)
{
tdput.value = tdText; //将原有的值赋给input的Value
} //end if
} //end fn
} //end fn
function stopEvent(e){
e.cancelBubble = true; //阻止事件传播
return false;
} //end fn
} //end fn
function test(){
changeColorEven();
} //end f
</script>
</head>
<body onload="test()">
<table>
<thead>
<th colspan=2>可编辑的表格</th>
</thead>
<tbody>
<tr>
<th>学号</th>
<th>姓名</th>
</tr>
<tr>
<td>000001</td>
<td>张三</td>
</tr>
<tr>
<td>000002</td>
<td>李四</td>
</tr>
<tr>
<td>000003</td>
<td>王五</td>
</tr>
<tr>
<td>000004</td>
<td>赵六</td>
</tr>
</tbody>
</table>
</body>
</html>