Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取随机块_Javascript_Jquery_Random - Fatal编程技术网

Javascript 获取随机块

Javascript 获取随机块,javascript,jquery,random,Javascript,Jquery,Random,我有ID为从block1到block10的块 像这样: <div id="block1"></div> <div id="block2"></div> <div id="block3"></div> <div id="block4"></div> <div id="block5"></div> <div id="block6"></div> <di

我有ID为从
block1
block10
的块

像这样:

<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的随机块?

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和10之间的随机数

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

然后获取id+num的元素


var元素=document.getElementById('block'+num)

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

var randomNumber=Math.floor(Math.random()*11)
var chosenBlock = $('#block'+randomNumber);
其中11表示随机数将介于0-10之间。要将范围增加到100,只需将11改为101

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

前两个答案不太正确。他们将检索0到10之间的数字,因为他们使用的是floor,而不是1到10

随机数计算的工作原理如下:

  • Math.random返回0到1之间的十进制值,但既不是0也不是1
  • 将该十进制值乘以10,其范围约为0.000001至9.99999
  • 在结果上使用Math.floor将删除小数点,因此答案现在介于0和9之间
  • 将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);
    

    +1.我唯一要做的更改是使用jQuery,因为他将其标记为jQuery,我想他正在使用它:
    $(“#block”+randomnumber)你还可以通过解释随机数选择的工作原理(或至少链接到解释它的内容)来让答案更透彻一点@Happy:the+1指的是我对他的答案的投票,与答案的实际内容无关。@jball this line“Math.floor(Math.random()*10)+1+1表示随机数的最小值为1。Math.floor(Math.random()*10)返回0-9,而Math.floor(Math.random()*10)+1返回1-10
    var num=Math.floor(Math.random()*11)返回一个介于0和11之间(含0和11)的数字<代码>变量元素=document.getElementById('block'+0)将失败。复制/粘贴Jonathon答案中的我的注释,您犯了相同的0范围错误:
    var randomNumber=Math.floor(Math.random()*11)返回一个介于0和11之间(含0和11)的数字<代码>var chosenBlock=$(“#block”+0)将失败。部分复制自请始终添加属性。