Javascript 如何删除每个单独的div,一旦其中的数字达到0?

Javascript 如何删除每个单独的div,一旦其中的数字达到0?,javascript,jquery,html,Javascript,Jquery,Html,我在HTML中有以下元素: <li class="myDiv">15</li> <li class="myDiv">20</li> 我抓取div中的数字并将其变成一个数字,然后每秒减去一个 当每个div内的值达到0时,如何删除该div 我有一个除法,除掉div中的每个数字 $this.html(parseInt(number) - 1); if($this.html() == 0){ $this.remove(); } 为什么$this

我在HTML中有以下元素:

<li class="myDiv">15</li>
<li class="myDiv">20</li>
我抓取div中的数字并将其变成一个数字,然后每秒减去一个

当每个div内的值达到0时,如何删除该div

我有一个除法,除掉div中的每个数字

$this.html(parseInt(number) - 1);
if($this.html() == 0){
    $this.remove();
}
为什么$this=$this?你为什么不用$this呢?

这是

您可以这样做:ifparseInt$this.html,10==0$this.remove;相反,如果你真的想确认它是一个数字


也包括,比如$this.htmlparseIntnumber,10-1;比$this.htmlparseIntnumber-1更好;由于它告诉JS这是一个以10为基数的十进制数,将有助于防止代码可能出现问题。

或与您的问题无关,您可以使用.text。。。这里不是.html。。。。使用.html。。。处理数字串就像用大锤打苍蝇一样。$this.htmlparseIntnumber==0不起作用。您正在将jQuery对象与0进行比较。为什么$this=$this?避免多次拨打$。这是一种很常见的做法。@adeneo有一个更好的解决方案。哈哈,这就是我在你更新它时键入的内容。向上投票。
$this.html(parseInt(number) - 1);
if($this.html() == 0){
    $this.remove();
}
setInterval(function() {
    $(".myDiv").each(function (idx, elem) {

        var numb = parseInt( $(elem).html(), 10) - 1;

        if (numb === 0) {
           $(elem).remove();
        }else{
           $(elem).html(numb);
        }

    });
}, 1000);
setInterval(function() {
    $(".myDiv").each(function () {
       var $this = $(this);
        var number = $this.html();
        $this.html(parseInt(number) - 1);
        if($this.html() === '0') $this.remove();
    })
}, 1000);