我在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中的每个数字。
答案 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)
?