javascript删除动态添加的div

标签 javascript jquery

我有 3 个文本字段,我想在单击“添加”按钮时使用一个删除图标进行克隆 ...到目前为止,我的代码工作正常。

现在我想在单击删除按钮时删除该特定 div 的最后 3 个文本字段...但是我的代码删除了我表单中所有动态添加的文本字段..

请帮我解决这个问题....

$('#add_exercise').on('click', function() {
  $('#exercises').append('<div class="exercise"><input type="text" name="exercise[]"></div>');
  $('#exercises').append('<div class="exercise"><input type="text" name="exercise[]"></div>');
  $('#exercises').append('<div class="exercise"><input type="text" name="exercise[]"><button class="remove">x</button></div>');
  return false;
});

$('#exercises').on('click', '.remove', function() {
  $(this).parents("#exercises").remove();
  return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<fieldset id="exercises">
  <div class="exercise">
    <input type="text" name="exercise[]">
    <input type="text" name="exercise[]">
    <input type="text" name="exercise[]">
  </div>
  <button id="add_exercise">add exercise</button>
  <button class="remove">x</button>
</fieldset>

最佳答案

问题出在您对 .parents('#excercises') 的使用上因为这会选择顶级容器并将其删除。

更好的解决方案是将您附加的所有 3 个输入包装在它们自己的 div 中,然后使用 closest() 删除它,像这样:

$('#add_exercise').on('click', function() {
  $('#exercises').append('<div class="exercise"><input type="text" name="exercise[]"><input type="text" name="exercise[]"><input type="text" name="exercise[]"><button type="button" class="remove">x</button></div>');
});

$('#exercises').on('click', '.remove', function() {
  $(this).closest(".exercise").remove();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<fieldset id="exercises">
  <div class="exercise">
    <input type="text" name="exercise[]">
    <input type="text" name="exercise[]">
    <input type="text" name="exercise[]">
    <button type="button" class="remove">x</button>
  </div>
  <button type="button" id="add_exercise">add exercise</button>
</fieldset>

请注意,我添加了 type="button"给你的<button>元素,因为对他们来说不提交任何 parent 是有意义的 form元素。

关于javascript删除动态添加的div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40632396/

相关文章:

javascript - 使用 JS 在本地编辑和保存文件

javascript - 如何将表单数据存储在ajax变量中?

javascript - 跨域 JSON - 哪个服务器提供源有关系吗?

javascript - 如何使用 jquery 扫描 JSON 以确定某个字符串的实例数量?

javascript - Highcharts - 堆积柱 - 为每个类别动态排序系列索引

如果未选择复选框,则 Javascript 禁用按钮 - 问题

javascript - 条件发布事件

javascript - 检查地址栏中的字符串是否与 li id 匹配

javascript - 提交时 - 页面刷新回到网页上的某个点?

javascript - 如何将 php 值从当前页面传递到弹出页面(外部)