如何在Javascript中删除一行?

如何在Javascript中删除一行?,javascript,row,Javascript,Row,我已经在Javascript中动态添加/删除行,添加行没有问题,只是删除行有问题。 现在,我所做的是,当我想删除一行时,它总是删除最后一行,因此我认为我只想删除选中的行,而我不知道如何将脚本修改为我想要的 以下是脚本: var i=0; function addRow() { i++; m.r.value = i; var tbl = document.getElementById('table'); var lastRow = tbl.rows.length; var ite

我已经在Javascript中动态添加/删除行,添加行没有问题,只是删除行有问题。 现在,我所做的是,当我想删除一行时,它总是删除最后一行,因此我认为
我只想删除选中的行,而我不知道如何将脚本修改为我想要的

以下是脚本:

var i=0;
function addRow()
{
 i++;
  m.r.value = i;
  var tbl = document.getElementById('table');
  var lastRow = tbl.rows.length;
  var iteration = lastRow - 1;
  var row = tbl.insertRow(lastRow);

  var cellLeft = row.insertCell(0);
  var textNode = document.createTextNode(iteration);
  cellLeft.appendChild(textNode);

  var cellRightSel1 = row.insertCell(1);
  var sel = document.createElement('select');
  sel.name = 'name' + iteration;
  sel.setAttribute("onchange", "choosec(this);");    
  var item = new Option("","");
  sel.options[sel.length] = item;
    <?
    while($data = mysql_fetch_array($result)){                                    
    ?>
  var item = new Option("<?=$data["Name"];?>","<?=$data["ID"];?>");
  sel.options[sel.length] = item;
  <? } ?>
  cellRightSel1.appendChild(sel);

  var cellRightSel2 = row.insertCell(2);
  var sel = document.createElement('select');
  sel.name = 'class' + iteration;
  sel.setAttribute("onchange", "choosepoint(this);");    
  var item = new Option ("","");
  sel.options[sel.length] = item;
    <?
    while($data = mysql_fetch_array($result_sub)){                                    
    ?>
  var item = new Option("<?=$data["Class"];?>","<?=$data["ID"];?>");
  sel.options[sel.length] = item;
  <? } ?>
  cellRightSel2.appendChild(sel);

  var cellRight = row.insertCell(3);
  var div = document.createElement('div');
  div.id = 'point' + iteration;
  cellRight.appendChild(div);
}


function removeRow(){
  var tbl = document.getElementById('table');
  var lastRow = tbl.rows.length;
  var rem = lastRow - 1;
  if (lastRow > 2) tbl.deleteRow(rem);
}

这是需要更改的代码:

  var rem = lastRow - 1;
现在,这永远是最后一排。您可以围绕它构建一些逻辑来传递索引,或者查找字符串,或者其他任何内容,但是tbl.deleteRow()需要在特定索引处删除

如果要删除第三行,例如:

var rem = 2; //zero-based index

这是需要更改的代码:

  var rem = lastRow - 1;
现在,这永远是最后一排。您可以围绕它构建一些逻辑来传递索引,或者查找字符串,或者其他任何内容,但是tbl.deleteRow()需要在特定索引处删除

如果要删除第三行,例如:

var rem = 2; //zero-based index
像这样试试

<tr onclick="removeRow(this);">...</tr>
我发现一个很好的例子适合你的要求

像这样试试

<tr onclick="removeRow(this);">...</tr>

我发现一个很好的例子适合你的要求

名为
i
的全局var?内联事件处理程序?您考虑过使用jQuery吗?(实际上,在像Raynos这样的人抱怨建议使用jQuery之前,您也可以在没有jQuery的情况下改进这一点——但为什么要编写比Enessary更多的代码呢)一个名为
i
的全局变量?内联事件处理程序?您考虑过使用jQuery吗?(实际上,在像Raynos这样的人抱怨建议使用jQuery之前,你也可以在没有jQuery的情况下改进这一点——但为什么要编写比Enessary更多的代码)谢谢rajkumar先生,我已经解决了问题:)谢谢rajkumar先生,我已经解决了问题:)