jQuery:无法删除动态创建的元素

Ale*_*mbo 5 javascript jquery

我正在尝试删除动态附加的元素,但似乎未读取为此元素附加的类函数。

我可以单击+按钮并添加新元素,但是单击“-”按钮时不能删除。

<div id="dftenglist">
     <label for="dtfeng">Name:</label><input type="text" class="dfteng"> 
      <button id="plusdfteng">+</button> 
</div>

$("#plusdfteng").click(function() {
  $("#dftenglist").append('<br><span><label for "a">Name:</label><input type="text" class="dfteng"> <button class="minusbtn">-</button></span>'); 
});

$(".minusbtn").click(function() {
  $(this).parent().remove();
})
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/0uv4k5bz/1/

谢谢亚历克斯

Raj*_*amy 7

尝试event-delegation在这种情况下使用

$("#dftenglist").on("click", ".minusbtn", function() {
  $(this).parent().remove();
});
Run Code Online (Sandbox Code Playgroud)

演示

您可能会问为什么?原因是,在将事件注册到该特定元素时,该元素在DOM中将不可用,因为我们是在运行时添加它的。因此,在这种情况下,event-delegation将利用事件冒泡的概念来解决这个问题。欲了解更多信息,请点击这里

对于您的新要求,只需执行以下操作即可,<br>同时删除父元素。

$("#dftenglist").on("click", ".minusbtn", function () {
    $(this).parent().prev('br').addBack().remove();
});
Run Code Online (Sandbox Code Playgroud)

演示