You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让动态添加的删除按钮仅删除所属的HTML代码块?

动态删除按钮如何移除所属的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);

当前已写出的点击事件框架:

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

解决方法

首先要修正一个问题:动态创建多个元素时不能使用重复的id(页面中id必须唯一),所以先把删除按钮的id改为class:

1. 修改动态创建的内容代码

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

2. 实现删除逻辑

在点击事件中,this指向当前被点击的按钮,通过jQuery的.closest('fieldset')方法找到该按钮所属的最近<fieldset>父元素,再调用.remove()即可删除整个块:

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

补充说明:.closest()比.parent()更健壮,如果后续<fieldset>内部结构发生变化(比如按钮被其他标签包裹),.closest()依然能准确找到目标<fieldset>;如果按钮是<fieldset>的直接子元素,用.parent('fieldset').remove()也能实现需求,但.closest()适用性更广。

内容的提问来源于stack exchange,提问作者jackhammer013

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 14:53:11