如何删除在javascript中动态添加的元素

Nex*_*xus 16 html javascript jquery javascript-events

我有以下代码来创建一些元素

<div id="parent">
    <div id="block_1" >
        <div>
          <input type="text">
        </div>
        <img src="arrow.jpg">
        <div>
          <input type="text">
        </div>
        <div><a href="#" class="remove_block">Remove</a></div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

结果看起来像这样 在此输入图像描述

当用户按下ADD按钮时,它将转到javascript函数并创建相同的div块.这是代码

function add_block() {
var curDiv = $('#parent');
var i = $('#parent div').size()/4 + 1;
var newDiv='<div id="block_'+ i + '" class="parent_div">' +
'<div>' +
'<input type="text">' +
'</div>' +
'<img src="arrow.jpg">' +
'<div>' +
'<input type="text">' +
'</div><div><a class="remove_block" href="#">Remove</a></div>' +
'</div>';
$(newDiv).appendTo(curDiv);
};
Run Code Online (Sandbox Code Playgroud)

每当用户按下块左侧的"删除"链接时,应删除相应的块.这就是我做的:

$('a.remove_block').on('click',function(events){
   $(this).parents('div').eq(1).remove();
});
Run Code Online (Sandbox Code Playgroud)

问题是只有原始块中的删除工作,其余的没有.谁知道为什么? 在此输入图像描述

我是jQuery和javascript的新手,所以我非常感谢任何帮助和建议注意:我使用的是jQuery 2.0.3

小智 26

因为它是动态内容,所以不能绑定静态内容之类的事件,它不会绑定到元素,因为它们在绑定时不会出现.

所以你应该像这样绑定事件:

$('#parent').on('click', 'a.remove_block', function(events){
   $(this).parents('div').eq(1).remove();
});
Run Code Online (Sandbox Code Playgroud)