如果一个内部的数字达到0,如何删除每个div?

时间:2014-01-10 22:45:06

标签: javascript jquery html

我在HTML中有以下元素:

<li class="myDiv">15</li>
<li class="myDiv">20</li>

和这个jQuery:

setInterval(function() {
    $(".myDiv").each(function () {
       var $this = $(this);
        var number = $this.html();
        $this.html(parseInt(number) - 1);

    })
}, 1000);

我抓住div中的数字并将其变成一个数字,然后我每秒减去一个。

如果div中的值达到0,我该如何删除每个div?

我有这个工作Fiddle,它会减少div中的每个数字。

3 个答案:

答案 0 :(得分:4)

setInterval(function() {
    $(".myDiv").each(function (idx, elem) {

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

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

    });
}, 1000);

答案 1 :(得分:2)

以下是JSFiddle

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

如果你想真正确认它是一个数字,你可以这样做:if(parseInt($this.html(), 10) === 0) $this.remove();

同样adeneo's answer包含,说$this.html(parseInt(number, 10) - 1);$this.html(parseInt(number) - 1);好,因为它告诉JS它是一个基数10(十进制)数字,有助于防止代码出现问题。

答案 2 :(得分:1)

$this.html(parseInt(number) - 1);
if($this.html() == 0){
    $this.remove();
}

还为什么$this = $(this)?你为什么不用$(this)