【问题标题】:Get random block获取随机块
【发布时间】:2011-06-04 18:54:23
【问题描述】:

我有 ID 从block1block10 的块。

像这样:

<div id="block1"></div>
<div id="block2"></div>
<div id="block3"></div>
<div id="block4"></div>
<div id="block5"></div>
<div id="block6"></div>
<div id="block7"></div>
<div id="block8"></div>
<div id="block9"></div>
<div id="block10"></div>

如何获得随机块,id 范围从 1 到 10?

【问题讨论】:

    标签: javascript jquery random


    【解决方案1】:
    var randomnumber=Math.floor(Math.random()*10) + 1;
    var obj = document.getElementById('block' + randomnumber);
    

    jQuery:

    var randomnumber=Math.floor(Math.random()*10) + 1;
    var obj = $('#block' + randomnumber);
    

    【讨论】:

    • +1。我要做的唯一改变是使用 jQuery,因为他将它标记为 jQuery,我想他正在使用它:$('#block' + randomnumber);
    • 您还可以通过解释随机数选择的工作原理(或至少链接到解释它的内容)来使答案更彻底
    • @Happy:+1是指我投票给他的答案,与答案的实际内容无关。
    • @jball 这一行 "Math.floor(Math.random()*10) + 1;"
    • +1 表示随机数最小为 1。 Math.floor(Math.random()*10) 返回 0-9 而 Math.floor(Math.random()*10) + 1返回 1-10
    【解决方案2】:

    先取一个1到10之间的随机数

    var num = Math.floor(Math.random()*11);

    然后获取id+num的元素。

    var element = document.getElementById('block'+num);

    【讨论】:

    • var num = Math.floor(Math.random()*11); 返回一个介于 0 到 11 之间的数字。 var element = document.getElementById('block'+0); 将失败。
    【解决方案3】:

    您必须使用 javascript 生成一个随机数,然后只需使用 jQuery 选择器,例如

    var randomNumber=Math.floor(Math.random()*11)
    var chosenBlock = $('#block'+randomNumber);
    

    其中 11 表示随机数将介于 0-10 之间。要将范围增加到 100,只需将 11 更改为 101。

    编辑: 记得从 0 开始给你的区块编号。

    【讨论】:

    • 从 Jonathon 的回答中复制/粘贴我的评论,你犯了同样的包含 0 范围错误:var randomNumber = Math.floor(Math.random()*11); 返回一个介于 0 和 11 之间的数字。 var chosenBlock = $('#block'+0); 将失败。
    • 部分复制自javascriptkit.com/javatutors/randomnum.shtml,请始终添加署名。
    【解决方案4】:

    发布的前两个答案不太正确。他们将检索从 0 到 10 的数字,因为他们使用的是地板,而不是 1 到 10。

    随机数计算如下:

    1. Math.random 返回一个范围从 0 到 1 的十进制值,但既不是 0 也不是 1。
    2. 将该十进制值乘以 10 使其范围约为 0.000001 到 9.99999。
    3. 对结果使用 Math.floor 会删除小数点,因此答案现在介于 0 和 9 之间。
    4. 将数字加 1 以将其范围偏移到 1 到 10。

    完整代码如下:

    var randNumber = 1 + Math.floor(Math.random() * 10);
    var randId = 'block' + randNumber;
    
    var obj = document.GetElementById(randId);
    

    现在 obj 保存了 div 对象,randId 是随机 div 的 id。或者你可以在最后一行使用 jQuery:

    var obj = $('#' + randId);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-16
      相关资源
      最近更新 更多