我需要一个生成唯一随机DIV ID的JavaScript。目前我正在使用它与PHP
<?php
function getRandomWord($len = 10) {
$word = array_merge(range('a', 'z'), range('A', 'Z'));
shuffle($word);
return substr(implode($word), 0, $len);
}
$divid = getRandomWord();
$classid = getRandomWord();
?>
div = <?php echo $divid; ?>
class = <?php echo $classid; ?>
<div id="<?php echo $divid; ?>" class="<?php echo $classid; ?>"> </div>
以上PHP代码工作正常,并为DIV随机提供唯一ID,
如何使用javascript执行相同操作 谢谢。
答案 0 :(得分:2)
这是一个工作代码段中的简单随机字符串生成器,因此您可以看到它生成的内容:
function makeRandomStr(len) {
var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
var result = "", rand;
for (var i = 0; i < len; i++) {
rand = Math.floor(Math.random() * chars.length);
result += chars.charAt(rand);
}
return result;
}
document.getElementById("run").addEventListener("click", function() {
var div = document.createElement("div");
div.innerHTML = makeRandomStr(40);
document.getElementById("results").appendChild(div);
});
&#13;
<button id="run">Make Random</button><br><br>
<pre id="results"></pre>
&#13;
保证世界上完全独特的唯一方法是拥有一个中央服务器,它跟踪所有以前分配的字符串,因此不能使用任何重复。但由于你没有说明它需要多么独特,我提供了一个随机字符串。如果你做得更久,你的冲突几率就会接近于零。
您还可以添加其他环境元素,例如时间戳,鼠标位置等......这样可以减少冲突的可能性。
例如,这里将时间戳添加到字符串的末尾,这样您不仅可以意外地生成相同的随机字符串,而且还必须在完全相同的时钟上执行此操作时间。
function makeRandomStr(len) {
var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
var result = "", rand;
for (var i = 0; i < len; i++) {
rand = Math.floor(Math.random() * chars.length);
result += chars.charAt(rand);
}
return result + "_" + Date.now();
}
document.getElementById("run").addEventListener("click", function() {
var div = document.createElement("div");
div.innerHTML = makeRandomStr(40);
document.getElementById("results").appendChild(div);
});
&#13;
<button id="run">Make Random</button><br><br>
<pre id="results"></pre>
&#13;