讲师中心 微信公众号
AI工具推荐 视频效率加速

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

夏萱君_4985

夏萱君_4985

发布时间:2026-01-17 20:12:08

|

831人浏览过

|

来源于php中文网

原创

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

本文详解如何为动态生成的 html 元素(如 `

`)绑定删除功能,确保点击其内部“删除”按钮时,仅移除该元素自身而非全部内容,并强调避免重复 id、正确使用事件委托与 dom 遍历方法。

在前端开发中,动态添加 HTML 块(例如通过 append() 插入

)后,若需为每个块内的“删除”按钮实现独立删除逻辑,关键在于:不能依赖 ID 选择器定位目标元素(因为 ID 在页面中必须唯一,重复 ID 会导致 $('#delete_row_box') 始终只匹配第一个),而应利用事件委托 + 相对 DOM 关系定位。

✅ 正确做法:使用类名 + 事件委托 + 精准父级定位

首先,将按钮的 id="delete_row_box" 改为 class="delete-row-btn"(推荐语义化命名),并确保每次插入的 HTML 结构一致:

<div id="box_parent"></div>
// 动态添加带删除按钮的字段集
const content = `
  <fieldset>
    Some Content 
    <input type="button" class="delete-row-btn" value="Delete">
  </fieldset>
`;
$("#box_parent").append(content);

然后,使用事件委托绑定点击事件,并通过 $(this) 指向被点击的按钮,再向上查找其所属的

Html2md
Html2md

使用 Readability + Turndown 将 HTML 页面转换为干净的、Agent 友好的 Markdown。去除导航栏、广告、页脚、Cookie 横幅、社交按钮等干扰元素。支持 URL...

下载
容器:
$(document).on('click', '.delete-row-btn', function() {
  $(this).closest('fieldset').remove();
});
? closest('fieldset') 会从当前按钮开始向上遍历 DOM,找到最近的匹配祖先 (即使按钮嵌套在 或 内也可靠)。这是比 parent() 更健壮的选择——后者仅限直接父元素,一旦结构变化(如后期加了包装层)就会失效。

⚠️ 注意事项

  • 禁止重复 ID:HTML 规范要求 id 全局唯一。若多次调用 append() 含 id="delete_row_box" 的代码,将导致 JS 行为不可预测($('#delete_row_box') 只返回首个匹配项),务必改用 class。
  • 事件委托是必须的:动态添加的元素在页面加载时并不存在,因此不能用 $('.delete-row-btn').on('click', ...) 直接绑定;必须借助 $(document).on('click', selector, handler) 或更优的 $('#box_parent').on('click', '.delete-row-btn', ...)(提升性能,减少事件冒泡范围)。
  • 可扩展性建议:若未来容器类型变化(如改用
    ),只需将 closest('fieldset') 中的选择器更新为 .closest('.row') 即可,逻辑完全解耦。

    ? 进阶提示:添加确认与动画效果

    增强用户体验,可加入删除前确认及淡出动画:

    立即学习“前端免费学习笔记(深入)”;

    $(document).on('click', '.delete-row-btn', function() {
      if (!confirm('确定要删除此项?')) return;
    
      const $fieldset = $(this).closest('fieldset');
      $fieldset.fadeOut(300, function() {
        $(this).remove();
      });
    });

    这样,既保证了功能精准性,又兼顾了交互友好性与代码可维护性。

热门AI工具

更多
音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

相关专题

更多
class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

4096

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

306

2025.12.06

append用法
append用法

append是一个常用的命令行工具,用于将一个文件的内容追加到另一个文件的末尾。想了解更多append用法相关内容,可以阅读本专题下面的文章。

598

2023.10.25

python中append的用法
python中append的用法

在Python中,append()是列表对象的一个方法,用于向列表末尾添加一个元素。想了解更多append的更多内容,可以阅读本专题下面的文章。

1476

2023.11.14

python中append的含义
python中append的含义

本专题整合了python中append的相关内容,阅读专题下面的文章了解更多详细内容。

2704

2025.09.12

数据库Delete用法
数据库Delete用法

数据库Delete用法:1、删除单条记录;2、删除多条记录;3、删除所有记录;4、删除特定条件的记录。更多关于数据库Delete的内容,大家可以访问下面的文章。

3151

2023.11.13

drop和delete的区别
drop和delete的区别

drop和delete的区别:1、功能与用途;2、操作对象;3、可逆性;4、空间释放;5、执行速度与效率;6、与其他命令的交互;7、影响的持久性;8、语法和执行;9、触发器与约束;10、事务处理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

965

2023.12.29

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

4516

2023.06.20

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

60

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
GDB 17.2 官方文档集合
GDB 17.2 官方文档集合

共0课时 | 0人学习

Bootstrap 入门安装配置
Bootstrap 入门安装配置

共0课时 | 0人学习

38+ PhpStorm 提示和技巧
38+ PhpStorm 提示和技巧

共1课时 | 228人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn