Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.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随机数<;李>;_Javascript_Jquery - Fatal编程技术网

不同类型的Javascript随机数<;李>;

不同类型的Javascript随机数<;李>;,javascript,jquery,Javascript,Jquery,我有很多不同高度和宽度的。我想为每个列表样式生成随机数。例如,10种列表样式中有不同的innerHTML编号。如果我错了,请纠正我 function getNumber() { var minNumber = 0; var maxNumber = 10; var randomnumber = Math.floor(Math.random() * (maxNumber + 1) + minNumber); for (i = 0; i < 5; i++) {

我有很多不同高度和宽度的
  • 。我想为每个列表样式生成随机数。例如,10种列表样式中有不同的
    innerHTML
    编号。如果我错了,请纠正我

    function getNumber() {
        var minNumber = 0;
        var maxNumber = 10;
        var randomnumber = Math.floor(Math.random() * (maxNumber + 1) + minNumber);
        for (i = 0; i < 5; i++) {
            $('ul li').html(randomnumber);
        }
        return false;
    }
    
    函数getNumber(){
    var-minNumber=0;
    var maxNumber=10;
    var randomnumber=Math.floor(Math.random()*(maxNumber+1)+minNumber);
    对于(i=0;i<5;i++){
    $('ul li').html(随机数);
    }
    返回false;
    }
    

    请引导我或给我建议。谢谢。

    代码的主要问题是,在循环的每个迭代中,您将相同的随机数分配给所有
    li
    元素。相反,您应该在每个
    li
    元素上循环,并在每次迭代中生成一个新的随机数。试试这个:

    function getNumber() {
        $('ul li').each(function() {
            var minNumber = 0;
            var maxNumber = 10;
            var randomnumber = Math.floor(Math.random() * (maxNumber + 1) + minNumber);
            $(this).html(randomnumber);
        });
    }
    

    这是正确的方法。 在DOM完全加载$()时运行代码,并可能将随机数生成逻辑放在不同的函数中,以实现更好的重用性。 您可以将上面的代码复制粘贴到文本文件中进行测试

    <html>
        <head>
            <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
            <script>
                function getRandomNumber(minNumber, maxNumber){
                    return Math.floor(Math.random() * (maxNumber + 1) + minNumber);
                }
                $(function(){
                    var minNumber = 0;
                    var maxNumber = 10;
                    $("ul li").each(function(){
                        $(this).html(getRandomNumber(minNumber,maxNumber));
                    });
                });
            </script>
        </head>
        <body>
            <ul>
                <li></li>
                <li></li>
                <li></li>
            </ul>
        </body>
    </html>
    
    
    函数getRandomNumber(minNumber,maxNumber){
    返回Math.floor(Math.random()*(maxNumber+1)+minNumber);
    }
    $(函数(){
    var-minNumber=0;
    var maxNumber=10;
    $(“ul li”)。每个(函数(){
    $(this.html(getRandomNumber(minNumber,maxNumber));
    });
    });
    

    您的号码生成存在逻辑问题<代码>(maxNumber+1)应该是
    (maxNumber-minNumber+1)
    ,如果我在所有列表样式中使用特定的数字,如1、53、49、80、68固定数字,该怎么办?这里的显式迭代不是必需的显式迭代不需要显式迭代,它不是必需的,但会使代码更具可读性和可调试性。依我拙见