我用math.random编写了这个代码,使得一个1到3之间的随机数,但是当我按下我的按钮时,它只给出+3,它在1到3之间不是随机的。
当我点击按钮时,我希望它在1到3之间。
var cookies = 0;
var rand = Math.floor(Math.random() * (3 - 1 + 1)) + 1;
if(localStorage.cookies)
cookies = localStorage.getItem('cookies');
document.getElementById("cookies").innerHTML = cookies;
function cookieClick(number) {
cookies = parseInt(cookies) + rand;
document.getElementById("cookies").innerHTML = cookies;
localStorage.setItem('cookies', cookies);
}
答案 0 :(得分:0)
每次单击按钮时生成随机数,而不是在脚本顶部。另外,为什么你从3中减去1然后再添加它?:
function cookieClick(number){
var rand = Math.floor(Math.random() * 3) + 1;
cookies = parseInt(cookies) + rand;
document.getElementById("cookies").innerHTML = cookies;
localStorage.setItem('cookies', cookies);
}
答案 1 :(得分:0)
您可以在变量rand上使用%。
例如:
var val = rand % 3;
if(val == 0){
val = 1;
}
-OR
var rand = Math.floor((Math.random() * 3) + 1);
答案 2 :(得分:0)
问题在于,每次按下p, span {
border: 1px dotted blue;
}
p:after, span:after {
content: '\a0';
}
时,您都要设置一次随机数,而不是生成新的随机数。您需要在每次按下按钮时生成一个新的随机数。看到这个小提琴:http://jsfiddle.net/0k3c0x2x/15/
答案 3 :(得分:0)
您的代码正常运行,您只生成一次随机数。如果您要删除缓存并重新加载页面,则会生成不同的数字。例如,我的页面上有+2。
您需要在按钮点击内生成一个新的随机数。
function cookieClick(number){
cookies = parseInt(cookies) + Math.floor(Math.random() * (3 - 1 + 1)) + 1;
document.getElementById("cookies").innerHTML = cookies;
localStorage.setItem('cookies', cookies);}