Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用setinterval显示最终数字前的随机数字_Javascript_Jquery_Random_Counter_Setinterval - Fatal编程技术网

Javascript 使用setinterval显示最终数字前的随机数字

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 () {

我有3个div(#digit1,#digit2,#digit3),代表一个已知数字的3位数字(例如:459)。在显示实际数字之前,我想为每个数字显示20个从0到9(每100毫秒)的随机数字

使用jQuery,我能够如下显示第一个数字:

    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("&nbsp"+$(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("&nbsp"+randomnumber);
         } else {
             $("div[num='"+i+"']").html(randomnumber);
         }
         i--;j++;
    });  
});

谢谢你的回答,但是,我真的需要在单独的div中的所有数字。如我在问题中所述,如果数字超过3位,则必须有一个空格(例如:12450)。谢谢,我将尝试一下!