关于用JS 动态删除一行的问题~~~

ahao521 2007-12-18 01:08:32
我有个个下拉框。当我的下拉框变化时我从数据库里读出一些数据。动态的在Table里加几行。
把读出的数据放到刚才动态的添加的几行里
而当我再次变化下拉框时 就该把刚才动态的添加过的几行数据给删除了再取一些数据 从新添加几行

问题是 添加TR时没问题。但删除时 总是不能完全删除掉。总是留有几行没能删除。这是怎么回事?

这是我的代码添加TR 的代码和 删除TR的代码

这里是添加部分
var tbody = document.getElementById("MyTbody");
for(var i = 0; i < str.length; i++)
{
var newTr = tbody.insertRow(i);

var newTd0 = newTr.insertCell();

var newTd1 = newTr.insertCell();

newTd0.innerText= str[i][0];

var cb=document.createElement("input");
cb.type="text";
cb.name="shuxing"+str[i][1];

newTd1.appendChild(cb);
}
//到这里没问题

这里是删除部分

var tbody = document.getElementById("MyTbody");
for(i=0;i<tbody.rows.length;i++)
{
tbody.deleteRow();
}
这里总是删不干净。。
我也试过tbody.deleteRow(tbody.rows[i].rowIndex);
还是没用

郁闷了一上午了.郁闷~~~~
...全文
1062 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanzhengwu 2007-12-18
  • 打赏
  • 举报
回复
var   tbody   =   document.getElementById("MyTbody"); 
for(i=0;i <tbody.rows.length;i++)
{
tbody.deleteRow();
i--;
}
ahao521 2007-12-18
  • 打赏
  • 举报
回复
问题以解决.7楼是正确答案
ChDw 2007-12-18
  • 打赏
  • 举报
回复
var   tbody   =   document.getElementById("MyTbody"); 
for(var i = tbody.rows.length - 1; i >= 0; i--)
{
tbody.deleteRow(i);
}

aChinese 2007-12-18
  • 打赏
  • 举报
回复
var tbody = document.getElementById("MyTbody");
var rowCount = tbody.rows.length; //提出来
for(i=0;i <rowCount ;i++)
{
tbody.deleteRow(); //注意删掉一行后,tbody.rows.length就会少掉,所以你只能删掉一半
}
吐司vivi 2007-12-18
  • 打赏
  • 举报
回复
或者把table放在div中 利用innerHtml直接把table置为空
吐司vivi 2007-12-18
  • 打赏
  • 举报
回复
table.removeNode(true)
  • 打赏
  • 举报
回复
<table id='btbody'>
function resetbuttonclick(){//清空
var tbody=document.getElementById('btbody');
var len = tbody.childNodes.length;
for(var i=1;i<len;i++){
tbody.removeChild(tbody.childNodes[1]);
}
}
beyondlt 2007-12-18
  • 打赏
  • 举报
回复
9494~~~!展望中.........
ahao521 2007-12-18
  • 打赏
  • 举报
回复
回答也太不负责了吧?从百度搜一个就贴出来?
我也看过的
bingxue2332 2007-12-18
  • 打赏
  • 举报
回复
deleteRow
语法:
object . deleteRow ( iIndex )
参数:
iIndex :  可选项。整数值(Integer)。指定从表格内删除的行的序号。如果忽略此参数,默认将删除 rows 集合内的最后一个。

返回值:

说明:
从 object 中删除指定的行(Row)。也即从 rows 集合中删除指定的项目( tr )。
指定的行从 tFoot , tBody , tHead 中删除,也同时从 table 的 rows 集合中删除。此时 iIndex 应该是表示 tr 的 sectionRowIndex 属性。
指定的行从 table 中删除,等于从 tBody 的 rows 集合中删除。此时 iIndex 应该是表示 tr 的 rowIndex 属性。
<script>
var i_nowheight=280;
function rdl_doOver(e){
event.cancelBubble=true;
with (event.srcElement.parentElement) {
if (tagName.toLowerCase()=="tr") {
document.all("id_note").innerHTML="选定的行在<font color=#FF3300>"+parentElement.tagName.toUpperCase()+"</font>中。<br>"+"sectionRowIndex=<b>"+sectionRowIndex.toString()+"</b>   rowIndex=<b>"+rowIndex.toString();+"</b>";
} else { document.all("id_note").innerHTML="请将鼠标移到上方的表格中查看信息。<br>单击将删除选定的行。";}
}
}
document.onmouseover=rdl_doOver;
function rdl_delRow(e){
event.cancelBubble=true;
with (event.srcElement.parentElement) {
if (tagName.toLowerCase()=="tr") myTable.deleteRow(rowIndex);
i_nowheight-=20;
window.resizeTo(360,i_nowheight);
}
}
</script>


<table cellspacing=1 id=myTable onclick="rdl_delRow();">
<thead><tr id=myTR><td>THEAD的第1个TD</td><td>THEAD的第1个TD</td><td>THEAD的第1个TD</td></tr></thead>
<tbody><tr id=myTR><td>TBODY的第1个TD</td><td>TBODY的第2个TD</td><td>TBODY的第3个TD</td></tr>
<tr id=myTR><td>TBODY的第4个TD</td><td>TBODY的第5个TD</td><td>TBODY的第6个TD</td></tr></tbody>
<tfoot><tr id=myTR><td>TFOOT的第1个TD</td><td>TFOOT的第1个TD</td><td>TFOOT的第1个TD</td></tr></tfoot>
</table>
<br><div id=id_note></div>

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧