【问题标题】:If input is set to 0 how can it be removed from the DOM?如果输入设置为 0,如何将其从 DOM 中删除?
【发布时间】:2014-09-27 09:21:10
【问题描述】:

我是 jQuery 的新手。如果输入的值设置为 0,我会尝试从 DOM 中删除 div。所有 div 都有一个名为“item”的类,就好像它们是购物车中的物品一样。

有没有办法在没有删除按钮的情况下将每个div设置为0?

<div class="item">
  <label for="inputQuantity">Quantity</label>
  <input type="text" id="inputQuantity" placeholder="1">
</div>

<div class="item">
  <label for="inputQuantity">Quantity</label>
  <input type="text" id="inputQuantity" placeholder="1">
</div> 

http://jsfiddle.net/A9cm7/

【问题讨论】:

  • 你有没有尝试过?我没有看到你的问题或小提琴的尝试。
  • ID 对于有效的 HTML 必须是唯一的。

标签: jquery html-input


【解决方案1】:

你有重复的 ID,去掉那些用于普通类:

<div class="item">
  <label>Quantity</label>
  <input type="text" class="inputQuantity" placeholder="1">
</div>

然后做:

$(".item .inputQuantity").blur(function() {
    if (this.value == 0) {
        //remove it
        $(this).closest(".item").remove();
    }
})

这将为您的输入设置一个blur 处理程序,如果valueblur 上是0,那么它将删除该div。

【讨论】:

  • 快速注意,这不适用于动态添加的元素。为此,请使用$(document).on('blur','.item .inputQuantity',function() { ... })
【解决方案2】:

这是一个免费赠品,因为您是新手。下次发帖前请努力。

我从您的问题中假设您希望在页面加载时删除元素,而不是作为使用操作的结果。

http://jsfiddle.net/isherwood/A9cm7/5

$(function () {
    $('.item input').each(function () {
        if ($(this).val() == '0' || $(this).val() == '') {
            $(this).closest('.item').remove();
        }
    });
});

这会检查“0”和空值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    相关资源
    最近更新 更多