我有一个包含整数内容的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。我该怎么做呢?
答案 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);
});
答案 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);
});