javascript - 如何在 JavaScript 中删除一行?

标签 javascript row

我已经在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);
}

非常感谢您的帮助,谢谢。

我解决的问题:

function removeRow(t){
      var i = t.parentNode.parentNode.rowIndex;
      var tbl = document.getElementById('table');
      var lastRow = tbl.rows.length;
      var iteration = lastRow - 1;
      tbl.deleteRow(i);
    }

最佳答案

试试这样

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

然后在 javascript 方法中

function removeRow(row){
  var tbl = row.parentNode;
  var index = row.parentNode.rowIndex;
  if (index > 2) tbl.deleteRow(index);
}

我找到了一个适合您要求的好例子。 check here

关于javascript - 如何在 JavaScript 中删除一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9380978/

相关文章:

javascript - 如何从javascript中的var中提取完整的 anchor 标记?

javascript - 粘性标题列与表格列不匹配

javascript - 使用 svg 绘制链接列表 - jquery svg

c# - DataGridView 行高自动调整大小

mysql - 复制多个 MySql 行

javascript - next sibling 的表问题

javascript 查找元素的选择器

javascript - 如何在 Three.js 中将图像/纹理放在几何图形的一部分上?

c# - 在 SQL 表中创建新行时如何自动获取日期?

android - 行内元素的重力(Jetpack Compose)