I';我试图在一个表中添加一个删除按钮,并且只删除jquery中的那个表行。

I';我试图在一个表中添加一个删除按钮,并且只删除jquery中的那个表行。,jquery,Jquery,而是删除所有表行。我知道有一些方法可以使用父/子选择器选择该行,但不确定组合是否正确 $("#add-another-essay").click(function(){ event.preventDefault(); $('tbody').append("<tr class='essays-new-table-row'>"+$('.essays-new-table-row').html()+"</tr>") }); $("#remove-another-ess

而是删除所有表行。我知道有一些方法可以使用父/子选择器选择该行,但不确定组合是否正确

$("#add-another-essay").click(function(){
  event.preventDefault();
  $('tbody').append("<tr class='essays-new-table-row'>"+$('.essays-new-table-row').html()+"</tr>")
}); 

$("#remove-another-essay").click(function(){
  event.preventDefault();

  $('.essays-new-table-row').remove();
}); 
$(“#添加另一篇文章”)。单击(函数(){
event.preventDefault();
$('tbody').append(“+$('.newtable row').html()+”)
}); 
$(“#删除另一篇文章”)。单击(函数(){
event.preventDefault();
$('.new table row').remove();
}); 

要删除单击的行,请执行以下操作:

$(this).closest('tr').remove();
而不是:

$('.essays-new-table-row').remove();  //this removes all rows with that class

您的代码目前存在一些问题。首先,您要通过jquery创建“remove”按钮元素,但是您要在按钮实际存在之前初始化该按钮的click事件。你有

//Add
$("#add-another-essay").click(function(){ ... });

//Remove
$("#remove-another-essay").click(function(){ ... });
在“添加”函数中,您正在创建一个id为“删除另一篇文章”的新行。这意味着在单击添加按钮之前,不会出现名为“删除另一篇文章”的行。第一次加载页面时,“删除”功能不会应用于任何内容,因为在单击“添加”之前,$(“#删除另一篇文章”)不存在。解决方案是在“Add”函数的末尾初始化“Remove”函数

$(“.添加另一篇文章”)。单击(函数(){
//构建行的元素
$row=$(“”);
$data=$(“我的数据字符串”);
$btn=$(“删除”);
//把这一排放在一起
美元行
.append($data)
.追加($btn);
//将行追加到表体
$('tbody')。追加($row);
//重要信息-每次添加新行时,初始化删除另一个文章按钮单击处理程序。
$(“.删除另一篇文章”)。单击(函数(){
$(this).closest('tr').remove();
});
});
此外,您不应该在JQuery中动态生成html元素的id。只需使用类:

$(".remove-another-essay") OR <button class="remove-another-essay">Remove</button>
$(“.删除另一篇文章”)或删除

前面的答案没有完全解决OP的代码问题,OP在代码中通过JQuery创建表行。假设出于某种原因他必须这样做,我已经做了一个稍微不同的调整来解释这些要求

我们能看到HTML吗?我不知道remove按钮与行的关系如何?它是行的子项,还是有一个remove按钮,或者什么?DOM遍历以获得胜利。
$(".remove-another-essay") OR <button class="remove-another-essay">Remove</button>