生成相同的随机数onclick

Sam*_*mmy 2 javascript random jquery onclick onclicklistener

对不起,如果这是一个重复的问题,搜索高低,无法找到答案.

我正试图在每次点击时生成一个新的随机数.到目前为止,只有第一个数字是随机的,每次后续点击都没有任何反应.我认为getRandomNumber函数只被评估一次,这就是为什么我得到相同的数字.

$(document).ready(function(){    
    var index = 0; 

    function getRandomNumber(){
        shuffle = function(o){
            for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
                return o;
        };

        var randorder = shuffle([0,1,2,3,4]);

        return randorder[index++];
    }

    $("#button2").click(function(){
        var gameq = new Array();
        gameq[0] = "Question 1 ?";
        gameq[1] = "Question 2 ?";
        gameq[2] = "Question 3 ?";
        gameq[3] = "Question 4 ?";
        gameq[4] = "Question 5 ?";

        $("#question").replaceWith('<h5>' + gameq[getRandomNumber()] + '</h5>')
    });
});
Run Code Online (Sandbox Code Playgroud)

Che*_*niv 5

你只是#question在第一时间杀死你的元素.尝试更改最后一行,如下所示:

$("#question").replaceWith('<h5 id="question">' + gameq[getRandomNumber()] + '</h5>');
Run Code Online (Sandbox Code Playgroud)

或者它也可能对你有好处:

$("#question").html('<h5>' + gameq[getRandomNumber()] + '</h5>');
Run Code Online (Sandbox Code Playgroud)

  • 我会说最好这样做:`$("#question").html(gameq [getRandomNumber()]); (2认同)