Javascript 如何将向上计数功能应用于页面上的多个值?

Javascript 如何将向上计数功能应用于页面上的多个值?,javascript,html,Javascript,Html,我在表中动态生成了值。每个值都包含一个int(以秒为单位的数字) 现在我想把他们数一数 函数startCount(){ 变量时间=$(“.count”).text(); setInterval(函数(){ ++时间; }, 1000); $(“.count”).text(时间); } 270219 265454 312565 254587您需要在单个上循环。计数节点并为每个节点设置新文本 可以使用jquery的函数在各个元素上循环 然后使用将.count节点的文本转换为数字 例如: 函数s

我在表中动态生成了值。每个值都包含一个int(以秒为单位的数字)

现在我想把他们数一数

函数startCount(){
变量时间=$(“.count”).text();
setInterval(函数(){
++时间;
}, 1000);
$(“.count”).text(时间);
}
270219
265454
312565

254587
您需要在单个
上循环。计数
节点并为每个节点设置新文本

  • 可以使用jquery的函数在各个元素上循环
  • 然后使用将
    .count
    节点的文本转换为数字
例如:
函数startCount(){
setInterval(函数(){
$(“.count”)。每个(函数(){
设el=$(此);
让时间=数字(el.text())+1;
el.文本(时间);
});
}, 1000);
}
startCount()

270219
265454
312565
254587
您可以在从选择器获得的元素上使用,将字符串转换为数字:

函数startCount(){
setInterval(函数(){
$(“.count”)。每个(函数(idx,元素){
var time=+$(this.text();
$(元素).html(++时间);
});
}, 1000);
}
startCount()

270219
265454
312565
254587
不带.each

函数startCount(){
setInterval(函数(){
$(“.count”).text(函数(){
var val=+$(this.text();
return++val;
})
}, 1000);
}
startCount()

270219
265454
312565

254587迟到了。但是,您需要:

  • 迭代所有
    .count
    元素
  • 以整数形式读取元素的当前值
  • 增加该值并将其设置回原位
  • 使用间隔来执行此操作
270219
265454
312565
254587
函数startCount(){
setInterval(函数(){
$(“.count”)。每个((i,e)=>{
val=+$(e).text();
$(e)文本(++val);
});
}, 1000);
}
startCount();

这个答案已经得到了回答,但我只想提出一个没有jQuery的ES6解决方案

const startCount=()=>{
设置间隔(()=>{
Array.from(document.querySelectorAll('.count')).forEach(count=>{
count.textContent=Number(count.textContent)+1;
});
}, 1000);
};
startCount()
270219
265454
312565

254587
时间
解析为数字
.text()
返回一个字符串,这就是它连接使用
parseInt(val)
然后添加的原因。这是可行的,但看看@Turtlefight答案,他将
每个
设置间隔
切换为只运行1个函数,而不是N个(有N行),并且您的代码将每个值存储到一个“唯一”中
time
var,包含多个作用域。这不是最好的理解,可能会给未来带来错误updates@Arthur你说得对,我已经更新了代码(切换了setInterval和.each())不需要eachThank谢谢你,先生。我想我只是复制粘贴,看看会发生什么。它的工作完美无瑕!您还可以通过避免在一行中创建2
let
来赢得一些时间:
this.innerHTML=Number(this.innerHTML)+1(以及删除jQuery函数)无需each@mplungjan每个元素都是必需的,因为有多个元素(具有独立的计数值)@Arthur true,您可以在不使用jquery的情况下使用它,尽管我会使用
textContent
在这种情况下,我需要时使用jquery。为什么痴迷于“退出jQuery”就好像它是一种药物?我使用querySelector并获取越来越多的信息,但如果这里有人使用jQuery,我看不出有任何问题。这个答案很好,不需要被否决。它只是带来了一种更重的方法,而不是更漂亮的方法。当我说更漂亮时,我指的是小时、分和秒,而不是seconds@mplungjan每一个都不需要