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

jQuery使用parent()函数删除对应div行的实现问题求助

问题原因
  • 重复ID问题:HTML规范要求ID全局唯一,你多行共用deleteLineButton这个ID时,$("#deleteLineButton")只会匹配页面中第一个出现的对应ID元素,所以不管点哪行都只会删除第一行。
  • this指向问题:直接在HTML的onclick属性中调用函数时,函数内部的this默认指向window对象,而非触发点击的按钮元素,所以你直接写$(this)找不到对应的按钮,逻辑自然不生效。
快速解决方案(无需修改现有结构,仅改两处代码)
  1. 修改删除按钮的onclick属性,把当前点击的元素作为参数传入函数,同时删除重复的ID属性:
<button onclick="deleteLine(this);" title="Delete this line">X</button>
  1. 修改deleteLine函数接收参数,同时建议用closest()替代多层parent(),避免后续DOM结构调整导致层级不匹配:
function deleteLine(clickedBtn) {
  $(clickedBtn).closest('.row').remove();
}
后续优化建议(等你要规范代码的时候可以用)

不用在每个按钮上写onclick,用事件委托统一绑定事件,新增行也不需要额外处理绑定逻辑:

// 假设你所有的行都放在类名为row-container的父容器中
$('.row-container').on('click', 'button[title="Delete this line"]', function() {
  $(this).closest('.row').remove();
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 09:06:06