javascript - 如何删除表中的行?

标签 javascript html

我想删除我在函数 add() 中创建的行。当我使用函数 deleteRow() 行时,行将被删除,但我无法再次使用我的 add() 函数。有人知道为什么吗?

var trIdP =0;
function add() {
 var typeP = document.getElementById("typeP").value;
 var valueP = document.getElementById("valueP").value;
 var newText = document.createTextNode(typeP);
 var newText2 = document.createTextNode(valueP+" Eur");
 var newText3 = document.createTextNode("button");
 var tablePr = document.getElementById("tableP").getElementsByTagName('tbody')[0];
 if ((typeP != "") && (valueP != "")) {       
     var newRow = tablePr.insertRow(trIdP);
     newRow.id = ("trP"+trIdP);
     var newCell1 = newRow.insertCell(0);
     var newCell2 = newRow.insertCell(1);
     var newCell3 = newRow.insertCell(2);

     newCell1.appendChild(newText);
     newCell2.appendChild(newText2);
     newCell3.innerHTML = "<a onclick=\"deleteRow("+trIdP+")\"><img   src=\"x.gif\" alt=\"Delete row\"></a>";

     document.getElementById("typeP").value = "";
     document.getElementById("valueP").value = "";

     trIdP++;
 }
}

function deleteRow(id){
      document.getElementById("trP"+id).remove();
}

最佳答案

您忘记减少 trIdP 计数器。

更新:

// Code goes here

var trIdP = 0;

function add() {
  var typeP = document.getElementById("typeP").value;
  var valueP = document.getElementById("valueP").value;
  var newText = document.createTextNode(typeP);
  var newText2 = document.createTextNode(valueP + " Eur");
  var newText3 = document.createTextNode("button");
  var tablePr = document.getElementById("tableP").getElementsByTagName('tbody')[0];
  if ((typeP !== "") && (valueP !== "")) {
    var newRow = tablePr.insertRow(-1);
    newRow.id = "trP" + trIdP;
    var newCell1 = newRow.insertCell(0);
    var newCell2 = newRow.insertCell(1);
    var newCell3 = newRow.insertCell(2);

    newCell1.appendChild(newText);
    newCell2.appendChild(newText2);
    newCell3.innerHTML = "<a onclick=\"deleteRow(" + trIdP + ")\"><div>Row: " + trIdP + "</div></a>";

    document.getElementById("typeP").value = "";
    document.getElementById("valueP").value = "";

    trIdP++;
  }
}

function deleteRow(id) {
  document.getElementById("trP" + id).remove();
}

Check out this plunker

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

相关文章:

javascript - 在更多列中向左浮动 CSS 技巧

php - 将多个复选框插入数据库列

javascript - 如何使用javascript动态添加复选框?

javascript - 使隐藏的滑动 div 出现在链接后面

html - 两列布局中的粘性页脚位置

javascript - 滚动到特定 div 或 id 后触发事件

javascript - 使用对象选择根元素后,如何选择子元素?

javascript - jquery 删除一个类(如果它存在并添加一个新类)

javascript - 在 javascript/node.js 中迭代对象数组的有效方法

javascript - 如何在 Vue Js 中做多个过滤器?