我正在尝试使用 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"/>
为了确保随机数确实是唯一的,您必须跟踪之前出现的所有随机数,如果发生冲突,请生成一个新的随机数:
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;
}
}
}
})();
Usage:
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);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)