javascript - jQuery 元素移除

标签 javascript jquery html

我想使用 jQuery 删除一个元素。

HTML:

 <div class="listContainer" id="listContainer">
        <div class="listItem">
          <div class="name">
            Item Name
          </div>
          <div class="amount">
            <input type="text" class="amountInput" />
          </div>
          <div class="delete">
            <div class="deleteBtn">
              X
            </div>
          </div>
        </div>
      </div>

页面上有多个 listItems,每个 listItem 都将使用 jQuery 动态创建。我想通过单击 deleteBtn 删除特定 listItemamountInput,所以我尝试这样做:

$("#listContainer").on("click", ".deleteBtn", function() {
    $(this).closest(".amountInput").remove();
});

这行不通。但另一方面,如果我尝试删除整个 listItem ,则代码有效:

$("#listContainer").on("click", ".deleteBtn", function() {
    $(this).closest(".listItem").remove();
});

为什么会发生这种情况?

谢谢。

最佳答案

因为 .closest 传播到 HTML 的顶部。因此它会搜索第一个与您的选择器匹配的父级。这就是为什么它找不到 .amountInput。因为它不是您的按钮的父级。

要获取.amountInput,您必须:

$("#listContainer").on("click", ".deleteBtn", function() {
    $(this).closest(".listItem").find('.amountInput').remove();
});

这将获取包装的 .listItem 元素,然后在其中搜索 .amountInput 元素。

关于javascript - jQuery 元素移除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54621320/

相关文章:

javascript - FormData 追加数组中的项目

javascript - React Native 中的简单警报 - 按下时的功能

javascript - JQuery $.ajax() 使用异步将数据获取到变量中

jquery - 切换类 if else css

javascript - 使用 jQuery 动态更改 CSS 值

javascript - 模态主体未出现在 Bootstrap 模态中

HTML + CSS 下拉菜单

javascript - 动态删除表单元素

javascript - 如何限制 javascript/Angular 中第一个位置的空间

jquery - Tinymce 文本编辑器问题(有一个大字符串)