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

求助:使用JavaScript移除div元素的代码无法正常运行

解决JavaScript移除div元素无效的问题

看了你提供的代码,我发现几个关键问题,咱们一步步来修复:

1. 先解决重复ID的核心问题

HTML里的id属性是唯一标识符,你现在多个<div>都用了id="yes-drop",这完全不符合规范——浏览器只会识别第一个匹配该id的元素,后续的div根本不会被JavaScript正确定位到。

建议把重复的id改成class,同时给点击按钮传递自身上下文,方便后续找到要移除的div:

<div class="yes-drop draggable drag-drop">
  <img src="{% static 'images/car.png' %}" class="brand">
  <button onclick="removediv(this)">-</button>
</div>
<div class="yes-drop draggable drag-drop">
  <img src="{% static 'images/abc.png' %}" class="brand">
  <button onclick="removediv(this)">-</button>
</div>

2. 编写正确的移除函数

接下来写removediv函数,通过点击的按钮找到它所属的父div,然后完成移除:

function removediv(btn) {
  // 找到按钮的直接父级div
  const targetDiv = btn.parentElement;
  // 移除该div
  targetDiv.remove();
}

如果你的按钮在div里还有多层嵌套(比如包裹在其他元素里),可以用更健壮的closest()方法精准定位:

function removediv(btn) {
  // 向上查找最近的拥有yes-drop类的元素
  const targetDiv = btn.closest('.yes-drop');
  if (targetDiv) {
    targetDiv.remove();
  }
}

3. 为啥之前的代码失效?

  • 重复ID导致JavaScript只能找到第一个div,点击其他按钮也只会操作第一个元素;
  • 没有传递点击按钮的上下文,函数不知道要移除哪一个div;
  • 如果之前用getElementById('yes-drop')获取元素,本质上只能拿到第一个匹配项,自然看起来“无效”。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:15:53