Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays - Fatal编程技术网

Javascript数组将元素随机化到选定的元素

Javascript数组将元素随机化到选定的元素,javascript,arrays,Javascript,Arrays,我试着做一个函数,当你点击其中一个骰子元素时,它会重新掷骰子,它左边的每个元素也会重新掷骰子 目前我有它当你加载页面,骰子编号为1-6,当你点击一个骰子,它重新滚动它。我在试图弄清楚如何更改选定元素左侧的所有元素时遇到了一些困难 这是我的 (function () { var dieElements; dieElements = Array.prototype.slice.call(document.querySelectorAll('#dice div')); dieEl

我试着做一个函数,当你点击其中一个骰子元素时,它会重新掷骰子,它左边的每个元素也会重新掷骰子

目前我有它当你加载页面,骰子编号为1-6,当你点击一个骰子,它重新滚动它。我在试图弄清楚如何更改选定元素左侧的所有元素时遇到了一些困难

这是我的

   (function () {
  var dieElements;

  dieElements = Array.prototype.slice.call(document.querySelectorAll('#dice div'));

  dieElements.forEach(function (dieElement, whichDie) {

     dieElement.textContent = whichDie + 1;

     dieElement.addEventListener('click', function () {
        dieElement.textContent = Math.floor(Math.random() * 6) + 1;
     }, false);
  });
}());
这是html

<fieldset id="dice-area">
<legend>Dice</legend>
<div class="box-of-dice" id="dice">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>
</fieldset>

掷骰子

您已经单击了骰子的索引,并且所有骰子的数组都被困在一个闭包中。您所需要的就是像这样使用它们(轻松地使用它们):

(函数(){
双元素;
dielements=Array.prototype.slice.call(document.querySelectorAll('#dice div'));
forEach(函数(dielement,whichDie){
dielement.textContent=whichDie+1;
单击此模具时,Dielement.addEventListener('click',function(){//

对于(var i=0;i您已经单击了骰子的索引,并且所有骰子的数组都被困在了一个闭包中。您所需要的就是像这样使用它们(轻松地):

(函数(){
双元素;
dielements=Array.prototype.slice.call(document.querySelectorAll('#dice div'));
forEach(函数(dielement,whichDie){
dielement.textContent=whichDie+1;
单击此模具时,Dielement.addEventListener('click',function(){//

对于(var i=0;我可以发布一些html吗?你可以发布一些html吗?删除了我的答案,因为这是一种更简单的方法。@RobM.Yours也很好,因为你将逻辑划分为不同的函数。我只是尽可能地将它保持在OP的位置,以显示它有多简单!删除了我的答案,因为这是一种更简单的方法。@RobM。你的也很好,因为你把逻辑分成了不同的函数。我只是尽可能地让它接近OP的功能,以显示它是多么容易!