每XX秒将元素中的数字值增加0.07

时间:2016-07-04 11:22:56

标签: javascript

我一直在使用这个脚本一段时间,但我似乎无法找到一种方法将值更改为十进制并保持脚本正常工作...

是否有人对如何每XXX秒添加0.07有更多专业知识。 JS小提琴或片段是首选!提前谢谢!

setInterval(function () {
     $('#badge').html(parseInt($('#badge').html()) + 1);
}, 100);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="badge">0</span>

4 个答案:

答案 0 :(得分:2)

只需使用Number()功能:

setInterval(function () {
     $('#badge').html((Number($('#badge').html()) + 0.07).toFixed(2));
}, 100);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="badge">0</span>

Number()允许您使用float和整数,如果它是一个字符串,则将它们解析为数字,同时类似于parseInt() + parseFloat()

我使用toFixed(2)编辑代码以将小数位数限制为2

答案 1 :(得分:0)

Parse the value to float如果您需要小数位的固定数字,请使用toFixed

&#13;
&#13;
setInterval(function() {
  var data = parseFloat($('#badge').text()) + 0.07;
  $('#badge').html(data.toFixed(2));
}, 100);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="badge">0</span>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

尝试 window.setTimeout()功能:

$().ready(function () {
  doIncrement();  
});

function doIncrement()
{
  window.setTimeout(function () {
    $("#badge").html((parseFloat($("#badge").html()) +0.07).toFixed(2));
    doIncrement();
  }, 1000);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="badge">0</span>

解释

递归调用 doIncrement()函数。

注意

包含某种形式的旗帜可能是一个好主意,这样它就不会无限循环。

答案 3 :(得分:0)

setInterval(function () {
 $('#badge').html(parseFloat($('#badge').html()) + 0.07);,100);