【问题标题】:Add by inputed number every second每秒按输入的数字添加
【发布时间】:2015-06-16 00:52:38
【问题描述】:

基本上,我想在下面的页面上有多个 div

<div id="count">10</div>
<div id="count">20</div>

然后运行一些东西,它所做的就是找到任何 id 为“count”的 div,然后每秒将其中的任何数字添加到自身并显示该数字。

所以对于第一个 div 将显示 10 开始,然后下一个第二个更改为 20,然后 30,然后 40 并一直持续下去,对于第二个 div,它将显示 20 开始然后显示 40,然后 60,然后是 80 年,一直到永远。

提前致谢! :D

【问题讨论】:

  • ID 必须是唯一的。改用类。
  • 但是如果我有很多,那么我需要为每个人创建一个新课程吗?这对我来说很好,但是 javascript 会是什么样子?感谢您的帮助!
  • 不,你可以使用count作为他们所有的类,只有ID必须是唯一的。
  • 明确地说,除了第一次之外,您不会将数字添加到自身,对吗?即,您在每次迭代时将每个 div 分别增加 10 和 20?您可以先尝试根据这篇文章自行组合一些东西:stackoverflow.com/questions/4357145/…

标签: javascript html


【解决方案1】:

不,使用类。还添加自定义属性以保持增量值。

HTML:

<div class="count" data-increment="10">0</div>
<div class="count" data-increment="20">0</div>

JS:

setInterval(function () {
    var counters = document.getElementsByClassName("count");

    for(var i = 0 ; i < counters.length ; i++) {
        counters[i].innerHTML = parseInt(counters[i].innerHTML) + parseInt(counters[i].dataset.increment);
    }
}, 1000);

【讨论】:

  • 这太不可思议了。效果很好!
  • 等等...如果我想添加小数位,例如 0.40、0.80、1.20 等等,该怎么办?
  • 有没有办法添加两位小数?
【解决方案2】:
window.setInterval(function () {
    $('.count').each(function () {
        $(this).html(parseInt($(this).html()) + parseInt($(this).html()));
    });
}, 1000);

【讨论】:

  • 这段代码在每个间隔将每个 div 的当前值加倍,OP 希望每次将每个值增加相同的数字。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多