使用jQuery每秒增加div内容一个随机值

时间:2014-07-07 06:29:19

标签: javascript jquery

我有一个包含整数内容的div。

<div class="count">12,747,822</div>

我想用每秒2到5之间的随机数增加它的内容。这是我到目前为止所尝试的内容

<script type="text/javascript">
    function randomIntFromInterval(min,max) {
        return Math.floor(Math.random()*(max-min+1)+min);
    }

    $(document).ready(function(){
        $('.count').html(function(i, val) { return +val+randomIntFromInterval(2,5) });
    });
</script>

由于某种原因,这会创建一个空白div。我该怎么做呢?

2 个答案:

答案 0 :(得分:3)

您需要使用parseInt将html解析为数字(整数),然后您需要将其重新转换为字符串并将逗号重新放入千位分隔符中: How to print a number with commas as thousands separators in JavaScript

最后,你需要一个间隔来反复运行代码。

function randomIntFromInterval(min,max) {
    return Math.floor(Math.random()*(max-min+1)+min);
}

$(document).ready(function(){
    setInterval(function() {
        $('.count').html(function(i, val) {
            val = val.replace(/,/g,'');
            return (parseInt(val,10)+randomIntFromInterval(2,5)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
        })
    }, 1000);

});

JSFiddle

答案 1 :(得分:0)

希望这有帮助

   function rndint(min,max)
        {
            return Math.floor(Math.random()*(max-min+1)+min);
        }

   function updateVal(){
            var curval=$('.count').html().trim();
            if(curval===undefined || curval.length==0)
                curval=0;
            curval=curval.replace(/\,/g,'');
            curval=(parseInt(curval)+(0+parseInt(rndint(2,5))));
            var s=(curval+"").split('');
            var res="";
            var i=0;
            //Reverse keys for comma insertion after 3 chars
            var keys = new Array();
            for (var k in s) {
                keys.unshift(k);
            }
            for (var c = keys.length, n = 0; n < c; n++) {
                res=""+s[keys[n]]+res;
                if((i+1)%3==0 && i !=s.length-1)
                    res=","+res;
                i++;
            }
            $('.count').html(res);

   }
        $(document).ready(function(){
            setInterval(updateVal, 3000);
        });