Javascript 使用setinterval显示最终数字前的随机数字
我有3个div(#digit1,#digit2,#digit3),代表一个已知数字的3位数字(例如:459)。在显示实际数字之前,我想为每个数字显示20个从0到9(每100毫秒)的随机数字 使用jQuery,我能够如下显示第一个数字:Javascript 使用setinterval显示最终数字前的随机数字,javascript,jquery,random,counter,setinterval,Javascript,Jquery,Random,Counter,Setinterval,我有3个div(#digit1,#digit2,#digit3),代表一个已知数字的3位数字(例如:459)。在显示实际数字之前,我想为每个数字显示20个从0到9(每100毫秒)的随机数字 使用jQuery,我能够如下显示第一个数字: function displayInterval(callback,currentnumber) { x = 0; var interval = window.setInterval(function () {
function displayInterval(callback,currentnumber) {
x = 0;
var interval = window.setInterval(function () {
callback();
if (++x === 20) {
window.clearInterval(interval);
$("#digit1").html(currentnumber);
}
}, 100);
}
var number1="4";
var number2="5";
var number3="9";
displayInterval(function () {
var randomnumber=Math.floor(Math.random()*10);
$("#digit1").html(randomnumber);
},number1);
如果我再向displayInterval添加两个调用,它只对1位数有效,而另外两个则永远显示随机数
提前感谢您的帮助
注:以上只是我需要的一个简化示例。我的号码可以有1到6个数字,如果有3个以上的数字(例如:12550),则必须加空格,这就是为什么我需要将每个数字放在一个单独的分区中。您应该使用数组来存储号码。并在每三个数字之间留出间隔
正如你在问题中所说的,你应该为你的每个数字加一个div(查看演示)。
将您的JavaScript更改为此,并查看演示的HTML代码
function displayInterval(callback) {
x = 0;
var interval = window.setInterval(function() {
callback();
if (++x === 20) {
window.clearInterval(interval);
var nums = $("div[num]");
var max = $("div[num]").reverse().attr('num');
var i = max, j=1;
$.each( nums, function( key, value ) {
if(j%3==0) {
$("div[num='"+i+"']").html(" "+$(this).attr("value"));
} else {
$("div[num='"+i+"']").html($(this).attr("value"));
}
i--;j++;
});
}
}, 100);
}
displayInterval(function () {
var nums = $("div[num]");
var max = $("div[num]").reverse().attr('num');
var i = max, j=1;
$.each( nums, function( key, value ) {
var randomnumber=Math.floor(Math.random()*10)+"";
if(j%3==0 && i != max) {
$("div[num='"+i+"']").html(" "+randomnumber);
} else {
$("div[num='"+i+"']").html(randomnumber);
}
i--;j++;
});
});
谢谢你的回答,但是,我真的需要在单独的div中的所有数字。如我在问题中所述,如果数字超过3位,则必须有一个空格(例如:12450)。谢谢,我将尝试一下!