如何删除动态添加的html代码块

7xllpg7q  于 2023-03-06  发布在  其他
关注(0)|答案(4)|浏览(145)

我有一个按钮,它动态地创建<fieldset>中包含的html内容,如下所示:

<div id="box_parent"></div>

Javascript语言

var content = 
'<fieldset>Some Content <input id="delete_row_box" type="button" value="Delete"></fieldset>';
$("#box_parent").append(content);

我怎样才能使动态创建的删除按钮只删除它所属的html块?
我被这个功能卡住了:

$(document).on("click", '#delete_row_box', function() {
    console.log(this);
});

我认为应该使用.remove(),但不知道如何抛出正确的引用

3qpi33ja

3qpi33ja1#

全部内容

如果你想使用jQuery删除box parent中的所有内容,你应该使用以下代码:

$(document).on("click", '#delete_row_box', function() {
    $("#box_parent").children().remove();
});

一行

不要对可重复的标签使用ID。它在JS中不起作用。只需使用我在示例中使用的合适的类名

如果您希望将一个特定的框追加到delete,那么您应该在追加过程中为子框给予一个id,或者您应该将delete按钮放在每个框中,就像每个项目的关闭按钮一样。

如果行的容器是按钮的直接父项

使用以下代码查找要删除的父对象:

$(document).on("click", '.delete_row_box', function() {
    $(this).parent().remove();
});

如果行的容器是按钮的祖父级

使用以下代码查找需要删除的行:

$(document).on("click", '.delete_row_box', function() {
    $(this).closest('fieldset').remove();
});
  • 你可以用与你的父选择器匹配的选择器替换fieldset
aiqt4smr

aiqt4smr2#

选择其父项,然后删除添加的fieldset

$(this).parent().remove()
13z8s7eq

13z8s7eq3#

尝试添加一个id并删除该id。2这段代码应该工作正常,它只会删除“一些内容”,它不会删除你创建的删除按钮。3如果你需要生成多个内容,你可以在创建内容时添加一个索引,并添加一个for或while循环来选择要删除的内容(带有多个删除按钮)。4你甚至可以使用一个类来代替id,一次删除所有内容。

var content = '<fieldset><span id="content">Some Content</span> <input 
id="delete_row_box" type="button" value="Delete"></fieldset>';
$("#box_parent").append(content);

$(document).on("click", '#delete_row_box', function() {
    $("#content").remove();
});
8ehkhllq

8ehkhllq4#

var content = '<fieldset>Some Content <input id="delete_row_box" type="button" value="Delete"></fieldset>';
$("#box_parent").append(content);

$(document).on("click", '#delete_row_box', function() {
    $(this).closest('fieldset').remove();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="box_parent"></div>

相关问题