Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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 如何动态删除表行_Javascript_Jquery - Fatal编程技术网

Javascript 如何动态删除表行

Javascript 如何动态删除表行,javascript,jquery,Javascript,Jquery,我有一个像这样的html表- <table class="table" id="myTable"> <thead> <th>Email</th> <th>Delete</th> </thead> <tbody> </tbody> 行不删除。如何解决这个问题?有时不使用jQuery可能会帮助您了解实际发生的情况。这里有一个片段可能会有所帮助 //将侦听器添加到文档(事件委派)

我有一个像这样的html表-

<table class="table" id="myTable">
<thead>
   <th>Email</th>
   <th>Delete</th>
</thead>
<tbody>
</tbody>
行不删除。如何解决这个问题?

有时不使用jQuery可能会帮助您了解实际发生的情况。这里有一个片段可能会有所帮助

//将侦听器添加到文档(事件委派)
document.addEventListener(“单击”,删除行);
//添加第一行
addRow(document.querySelector(#myTable));
函数deleteRow(evt){
//读取数据属性(数据删除或数据添加)
if(evt.target.dataset.delete){
//检索要删除的行
const row2Delete=evt.target.closest(“tr”);
//将其从*其父*(表)中删除
row2Delete.parentNode.removeChild(row2Delete);
}else if(evt.target.dataset.add){
addRow(document.querySelector(#myTable));
}
返回true;
}
函数addRow(toTable){
//创建一行
常量行=document.createElement(“tr”);
//创建2个单元格
const cell1=document.createElement(“td”);
常数cell2=cell1.cloneNode(真);
//为第二个单元格创建一个按钮
const bttn=document.createElement(“按钮”);
bttn.dataset.delete=“1”;
bttn.textContent=“删除”;
//用随机电子邮件地址填充第一个单元格
cell1.appendChild(document.createTextNode(`someUser${
Math.floor(1+Math.random()*10000000)}@somewhere.net`);
//将按钮附加到单元格2
细胞2.附属物子体(bttn);
//将单元格追加到行
行。追加子行(单元格1);
第2行为子行(第2单元格);
//将行追加到表中
toTable.appendChild(行);
}
添加一行
电子邮件
删除

由于TR和按钮是动态生成的,所以您非常接近,
使用


您需要删除所有行吗?仅删除一行我当前的JQuery有问题吗?已经很好地解释过了。我只是想证明,有时候用普通的js做事情会让你更了解你或js正在做什么。但是,嘿,做你们最喜欢做的,我并没有在这里强加任何东西。不幸的是,这不起作用。@什么是“不起作用”你们在控制台中有任何错误吗?您的表也是动态生成的吗?第一个选择器应该是静态父级,而不是事件名称,并且是动态删除按钮的选择器。没有那么复杂。@和PS,请使用描述性类而不是
“input[type='button']”
这是控制台上的错误-未捕获引用错误:输入未定义我使用了您建议的描述性类,现在可以使用了!谢谢
var tbody = $('#myTable').children('tbody');   
var table = tbody.length ? tbody : $('#myTable');
table.append("<tr><td>"+user_email+"</td><td><input type='button' value='Del' id ='"+user_id+"'class='btn btn-danger btn-sm'></td></tr>");
$('input[type="button"]').click(function(e){
   $(this).closest('tr').remove()
})
$("#myTable").on("click", "input[type='button']", function(e){
   $(this).closest('tr').remove()
});