我尝试使用JQuery创建一个JavaScript代码段,其中随机数会不断变化并显示在不同的文本框中。
但是,我无法弄清楚如何使数字显示每个文本框的不同值。我怎么能做到这一点?
到目前为止,这是我的JavaScript代码:
var pcount = $(".pcount");
for(var i= 0; i < pcount.length; i++){
var n = [];
var element = pcount.eq(i);
setInterval(function() {
n[i] = 10 + Math.floor(Math.random(Number($( ".pcount" ).val())) * 10);
$('.pcount').val(n[i]);
}, 1000);}
以下是文本框的HTML代码:
<input type="text" class="pcount pc1" value="10"/>
<input type="text" class="pcount pc2" value="13"/>
<input type="text" class="pcount pc3" value="16"/>
答案 0 :(得分:0)
要确保随机数真正独一无二,您必须跟踪之前发生的所有随机数,如果发生冲突,请生成一个新的:
var makeUniqueRandom = (function() {
var randoms = {};
return function(low, hi) {
var rand;
while (true) {
rand = Math.floor((Math.random() * (hi - low)) + low);
if (!randoms[rand]) {
randoms[rand] = true;
return rand;
}
}
}
})();
用法:
var rand = makeUniqueRandom(1, 10);
注意:您必须确保不要耗尽可用的随机数,因为如果这样做,它将变成无限循环。因此,如果您要求1-10中的随机数(9个可能的值),则不要将其调用超过9次。
要将随机值放入<input>
标记,您可以执行以下操作:
<input type="text" class="pcount pc1" value="10"/>
<input type="text" class="pcount pc2" value="13"/>
<input type="text" class="pcount pc3" value="16"/>
$(".pcount").each(function() {
this.value = makeUniqueRandom(1, 10);
});