【发布时间】:2018-05-31 16:57:55
【问题描述】:
我正在尝试使多个计数器永远计数(从您登陆站点时开始),但我希望它们根据“数据速度”属性中设置的数量以不同的增量计数。例如,一个计数为 100,200,300,另一个计数为 300,400,500。我希望能够在不添加任何 JavaScript 的情况下添加具有不同数据速度的多个不同容器。
我有这个想法:
$(document).ready(function() {
timer = setInterval("countUP()", 1000);
});
var counter = 0;
var timer;
function countUP() {
speed = parseInt($(".countup").attr("data-speed"));
counter = counter + speed;
document.getElementById("money").innerHTML = counter.toLocaleString("en");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="icon"></div>
<div id="money" class="countup" data-speed="100">0</div>
<div class="text">Let's count up</div>
</div>
<div class="container">
<div class="icon"></div>
<div id="money" class="countup" data-speed="300">0</div>
<div class="text">Let's count up differently</div>
【问题讨论】:
-
看起来有效? jsfiddle.net/qynouLf5 你确定你已经包含了 jQuery 吗?控制台中的任何错误?此外,您不需要为 2 个 div 重复相同的 ID;只需使用类来选择它们并循环它们
-
谢谢,但我希望两个计数器按不同的数量进行计数 - 目前只有一个计数器在计数!哦,是的,将删除重复 ID!
-
我要让我们以不同的方式计数,每次增加 300!
-
那么问题是您正在选择 div by ID,但 getElementById 只选择它遇到的第一个 ID。而是使用
getElementsByClassName,循环遍历它返回的数组并在该循环中设置speed,以便每个div 都不同 -
这完美!!!!谢谢!
标签: javascript jquery html attributes counter