Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t删除表中的tr元素。JS_Javascript - Fatal编程技术网

Javascript Can';t删除表中的tr元素。JS

Javascript Can';t删除表中的tr元素。JS,javascript,Javascript,我有动态添加/删除输入的功能。添加可以正常工作,但删除不起作用。我找到了此功能的jQuery实现,并尝试将其转换为纯JS。这就是删除的实现方式(我在jQuery上测试了它,它在jQuery上工作) var i='2'; document.getElementById('addRow')。addEventListener('click',function(){ var html=''; html+=''; html+=''+i+''; html+=''; html+=''; html+='';

我有动态添加/删除输入的功能。添加可以正常工作,但删除不起作用。我找到了此功能的jQuery实现,并尝试将其转换为纯JS。这就是删除的实现方式(我在jQuery上测试了它,它在jQuery上工作)

var i='2';
document.getElementById('addRow')。addEventListener('click',function(){
var html='';
html+='';
html+=''+i+'';
html+='';
html+='';
html+='';
html+='';
html+='';
html+=“删除”;
html+='';
html+='';
html+='';
//
i++;
//document.getElementById('newRow').append(html);
document.getElementById('newRow').insertAdjacentHTML('beforebeagin',html);
});
//删除行
document.getElementById('removeRow')。addEventListener('click',函数(e){
e、 预防默认值();
document.getElementById('prevdel').previousSibling.remove();
});
//

1.
删除
添加字段

jQuery版本使用事件委派来解释运行时不存在的元素

通过将事件侦听器添加到表中并检查
事件目标

document.querySelector('.table').addEventListener('click', function (e){
   if(e.target.matches('button.removeRow')){
      e.target.closest('tr').remove()
   }      
});
工作版本-注意,我将两个移除按钮id更改为类

var i='2';
document.getElementById('addRow')。addEventListener('click',function(){
var html='';
html+='';
html+=''+i+'';
html+='';
html+='';
html+='';
html+='';
html+='';
html+=“删除”;
html+='';
html+='';
html+='';
//
i++;
//document.getElementById('newRow').append(html);
document.getElementById('newRow').insertAdjacentHTML('beforebeagin',html);
});
//删除行
document.querySelector(“.table”).addEventListener('click',函数(e){
if(例如target.matches('button.removeow')){
e、 target.closest('tr').remove()
}
});
//

1.
删除
添加字段

如果现在有时间学习的话,应该是=)不要使用
html+=。。。;html+=。。。;html+=..'
,只需一个
html=`..`指令,你可以有很多新行在那里你喜欢。酷,不知道,谢谢!但是,删除仍然不起作用。)不能在页面中重复元素ID。把它们想象成一个地址。使用类而不是标题仍然会选择第一个最近的id,对吗?这就是我需要删除的内容。@Mike'Pomax'Kamermans:你为什么这么说,这只是一个字符串,我想,你想到的是
innerHTML
,你的论点肯定成立。
document.querySelector('.table').addEventListener('click', function (e){
   if(e.target.matches('button.removeRow')){
      e.target.closest('tr').remove()
   }      
});