日期:2014-05-16  浏览次数:20421 次

js如何动态添加一行到table的第一行
我现在调用table.insertRow();添加的行默认是添加到最后一行,请问我如何添加一行到table的第一行。
还有我添加的行如何设置样式,跟原来已有的行样式相同。

请大家帮我看看如何实现。

------解决方案--------------------
HTML code

<script language="javascript" type="text/javascript">
function add(){
   var tb = document.getElementById("tb");
   var tr = tb.insertRow(0);
    tr.style.cssText = tb.rows[1].style.cssText;
   var td = tr.insertCell();
   td.innerHTML = "00000";
}
</script>
<input type="button" onclick="add()" value="add">
<table id="tb">
    <tr style="background:#CCC"><td>xxx</td></tr>
</table>

------解决方案--------------------
JScript code

/*
insertRow()这样是IE独有的.
标准用法是:
insertRow(-1): index为-1的时候就是默认插在最后一行.
insertRow( 0): index为0的时候就是插在第一行
至于样式一样 应该在样式表里统一设置.

*/

------解决方案--------------------
呵呵。。。我的也得了,参考一下,可以插在任意行后面的。。。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<script language="javascript" type="text/javascript">
function getO(id)
{
if (typeof(id)=="string")
return document.getElementById(id);
}

function appendAfterRow(tableID,RowIndex)
{
//FUNCTION: 向指定行后面增加一行,列数和第一行的列数一样
var o=getO(tableID);
var refRow=RowIndex;
var cells=o.rows[0].cells.length;
if(refRow=="") refRow = getO("nRow").value;
var v="";
var newRefRow=o.insertRow(refRow);
for (var i=0;i<cells;i++)
{
if(o.rows.length<10)
v="0"+o.rows.length+"0"+(i+1);
else
v=o.rows.length+"0"+(i+1);
newRefRow.insertCell(i).innerHTML=v;
}
}
</script>
<body>
<table width="100%" border="3" cellpadding="4" cellspacing="8" id="tb01" name="tb01">
<tr bgcolor="#CCCCCC">
<td>0101</td>
<td>0102</td>
<td>0103</td>
<td>0104</td>
</tr>
<tr>
<td>02</td>
<td>0202</td>
<td>0203</td>
<td>0204</td>
</tr>
</table>
在第<input name="nRow" type="text" id="nRow" onkeyup="this.value=this.value.replace(/[^0-9]*$/g,'');" value="1" size="10">行后面
<input type="button" value="插入行" name="btn01" onClick="javascript:appendAfterRow('tb01','');">
</body>
</html>


Hookee老大那么快啊 :)
------解决方案--------------------
table.insertRow(0);
------解决方案--------------------
objTable.insertRow(0);就可以了。