我正在尝试删除动态追加的元素,但似乎没有读取为此元素附加的类函数。
我可以点击+按钮添加新元素,但点击“ - ”按钮后我无法删除。
<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();
})
http://jsfiddle.net/0uv4k5bz/1/
谢谢, 亚历
答案 0 :(得分:6)
尝试在此背景下使用event-delegation
,
$("#dftenglist").on("click", ".minusbtn", function() {
$(this).parent().remove();
});
您可能会问为什么?原因是,在将事件注册到该特定元素时,该元素将无法在DOM中使用,因为我们在运行时添加它。因此,在这种情况下,event-delegation
将利用事件冒泡的概念来解决这个问题。有关详细信息read here。
对于您的新要求,请执行以下操作,删除父元素时删除<br>
。
$("#dftenglist").on("click", ".minusbtn", function () {
$(this).parent().prev('br').addBack().remove();
});