在表格中自动增加一行,然后再根据条件删除.问题是删除的时候只会隔行删除,估计是增加行的时候加了空行,但没有显示出来?请朋友们指点一下,附代码如下 不能这样顺序删除的while(i <trs.length)var tr = trs[i]; 当你删除一行 行数会减少 就不存在 trs.length -1行了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵,不好意思,测试时没删除了,应该是这样的{ var trs = document.getElementById("t").rows; var i = 1; alert(trs.length); //alert(trs[i].cells[3].tagName); while(i<trs.length) { //alert(i+trs[i].cells[3].children[0].value); alert(trs[i].tagName+i); var tr = trs[i]; alert(tr.cells[3].tagName+i) if(tr.cells[3].children[0].value=="峰电价"&&tr.cells[3].children[0].value!=null) { document.getElementById("t").deleteRow(i); } if(tr.cells[3].children[0].value=="平电价"&&tr.cells[3].children[0].value!=null) { document.getElementById("t").deleteRow(i); } if(tr.cells[3].children[0].value=="谷电价"&&tr.cells[3].children[0].value!=null) { document.getElementById("t").deleteRow(i); } i++; }删除了一个i++;但现在是,一行都删除不了了. alert(trs[i].tagName+i); alert(tr.cells[3].tagName+i) 第一句弹出的值是:tr1第二名就没有执行.后面的就不执行了. 弄了一整天了.急啊 { var trs = document.getElementById("t").rows; var i = trs.length-1; //alert(trs.length); //alert(trs[i].cells[3].tagName); while( i > 0) { //alert(i+trs[i].cells[3].children[0].value); //alert(trs[i].tagName+i); var tr = trs[i]; alert(i + tr.rowIndex) // i++; if(tr.cells[3].children[0].value=="峰"&&tr.cells[3].children[0].value!=null) { document.getElementById("t").deleteRow(i); } else if(tr.cells[3].children[0].value=="平"&&tr.cells[3].children[0].value!=null) { document.getElementById("t").deleteRow(i); } else if(tr.cells[3].children[0].value=="谷"&&tr.cells[3].children[0].value!=null) { document.getElementById("t").deleteRow(i); } i = i -1; }} 注意 if else if 的应用 var m = trs.length;while(i<m) var tr = trs[i]; 改成这样也不行啊 嗯,谢谢 songpengasp可以了. 谁能帮我把这个模拟成手风琴效果 如何在一个html里响应另一个html里的js呢 急,急,请问javascript的function()的问题? 请教js高手:网页背景色实现三种颜色渐变效果 操作浏览器的问题 怎样模拟键盘的事件? 请问下 动态生成的checkbox选中的时候,怎么有值是undefined? 怎么用javascript得到页面的绝对路径? 虽然是菜鸟问题,仍然高分相送,怎样在JSP中弹出窗口来选择日期,回填到文本框中 CSDN 创建以来最简单的问题 js改变表单类型 js 进行 特殊字符转换。 资料要全面!!!
{
var trs = document.getElementById("t").rows;
var i = 1;
alert(trs.length);
//alert(trs[i].cells[3].tagName);
while(i<trs.length)
{ //alert(i+trs[i].cells[3].children[0].value);
alert(trs[i].tagName+i);
var tr = trs[i];
alert(tr.cells[3].tagName+i)
if(tr.cells[3].children[0].value=="峰电价"&&tr.cells[3].children[0].value!=null)
{
document.getElementById("t").deleteRow(i);
}
if(tr.cells[3].children[0].value=="平电价"&&tr.cells[3].children[0].value!=null)
{
document.getElementById("t").deleteRow(i);
}
if(tr.cells[3].children[0].value=="谷电价"&&tr.cells[3].children[0].value!=null)
{
document.getElementById("t").deleteRow(i);
}
i++;
}
删除了一个i++;
但现在是,一行都删除不了了.
alert(trs[i].tagName+i);
alert(tr.cells[3].tagName+i)
第一句弹出的值是:
tr1
第二名就没有执行.后面的就不执行了. 弄了一整天了.急啊
var trs = document.getElementById("t").rows;
var i = trs.length-1;
//alert(trs.length);
//alert(trs[i].cells[3].tagName);
while( i > 0)
{ //alert(i+trs[i].cells[3].children[0].value);
//alert(trs[i].tagName+i);
var tr = trs[i];
alert(i + tr.rowIndex)
// i++;
if(tr.cells[3].children[0].value=="峰"&&tr.cells[3].children[0].value!=null)
{
document.getElementById("t").deleteRow(i);
}
else if(tr.cells[3].children[0].value=="平"&&tr.cells[3].children[0].value!=null)
{
document.getElementById("t").deleteRow(i);
}
else if(tr.cells[3].children[0].value=="谷"&&tr.cells[3].children[0].value!=null)
{
document.getElementById("t").deleteRow(i);
}
i = i -1;
}
}
while(i<m) var tr = trs[i];
改成这样也不行啊
可以了.