如何在多个表行上删除Child

问题描述 投票:0回答:1

我正试图让这个工作。首先,我创建一个新的trtd,然后我想删除它。它第一次工作得很好,但如果我有几个tr我只是不断收到这个错误:

main2.js:16 Uncaught TypeError:无法在'Node'上执行'removeChild':参数1不是'Node'类型。 在HTMLTableSectionElement。

正如我所说,删除第一行非常有用。

function addReport(){
  addTr();
  for(var i = 0; i < reportForm.length; i++){
    if(reportForm[i].name == 'project' || reportForm[i].name == 'activity' || reportForm[i].type == 'text' || reportForm[i].name == 'note'){
      var newTd = document.createElement('td');
      newTd.textContent = reportForm[i].value;
      newTr.appendChild(newTd);
    } 
  }
  addEdit();
  report.reset();
};



function addTr(){
  newTr = document.createElement('tr');
  newTr.setAttribute('id', 'myTr');
  list.appendChild(newTr);
}

function addEdit() {
  var remove = document.createElement('td');
  remove.textContent = 'Ta bort';
  newTr.appendChild(remove);

  var edit = document.createElement('td');
  edit.textContent = 'Redigera';
  newTr.appendChild(edit);
}


/*------------------DELETE REPORT--------------------------*/
list.addEventListener('click', function(e){
  list.removeChild(myTr);
});
javascript html
1个回答
0
投票

从你的javascript,它看起来像是试图一遍又一遍地删除同一个孩子(myTr),即使它已被删除。

以下是一些可能的解决方案,具体取决于您的确切需求:

  • 在调用myTr之前,将正确的元素分配给list.removeChild(myTr)
  • 如果要删除的孩子总是第一个或最后一个,请使用list.children().first().remove()list.children().last().remove()
© www.soinside.com 2019 - 2024. All rights reserved.