使用javascript的唯一随机DIV ID

时间:2016-04-05 06:14:25

标签: javascript php jquery html css

我需要一个生成唯一随机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执行相同操作 谢谢。

1 个答案:

答案 0 :(得分:2)

这是一个工作代码段中的简单随机字符串生成器,因此您可以看到它生成的内容:

&#13;
&#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;
}

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;
&#13;
&#13;

保证世界上完全独特的唯一方法是拥有一个中央服务器,它跟踪所有以前分配的字符串,因此不能使用任何重复。但由于你没有说明它需要多么独特,我提供了一个随机字符串。如果你做得更久,你的冲突几率就会接近于零。

您还可以添加其他环境元素,例如时间戳,鼠标位置等......这样可以减少冲突的可能性。

例如,这里将时间戳添加到字符串的末尾,这样您不仅可以意外地生成相同的随机字符串,而且还必须在完全相同的时钟上执行此操作时间。

&#13;
&#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;
&#13;
&#13;