【问题标题】:Assign values to Button Randomly为按钮随机分配值
【发布时间】:2014-03-10 08:04:57
【问题描述】:

我有一个随机变量,可以选择 1-10 之间的任何随机数。我想创建一个用户必须猜测生成的随机数的问题。我想给用户 4 个选项。

我有 4 个不同的变量 abcrand

function generateOption()
{

var rand = Math.floor((Math.random() * 9)+1);
    var arr = [];
    var n,a,b,c;
    for(var i=0; i<3; i++)
    {
        do{
            n = Math.floor(Math.random()*9+1);
            }
        while(arr.indexOf(n) !== -1&&n!=rand);

       arr[i] = n;
    //  alert(arr[i]); 
    }

    a=arr[0];
    b=arr[1];
    c=arr[2];
alert(a+" "+b+" "+c+" "+rand);


}

我有四个这样的按钮

<table style="  margin: 0 auto;">
   <tr>
   <td><input id="nextbutton3" type="button" class="finish"></td><td></td><td><input id="nextbutton4" type="button" class="finish"></td>
   </tr>
   <tr>
   <td><input id="nextbutton5" type="button" class="finish"></td><td></td><td><input id="nextbutton6" type="button" class="finish"></td>
   </tr>
   </table>

我可以像这样为按钮赋值

$(function() {
        $("#nextbutton3").val(a);
        $("#nextbutton4").val(b);
        $("#nextbutton5").val(c);
        $("#nextbutton6").val(rand);
    });

但这将始终将正确答案设置为 button6。

如何将值 a,b,crand 随机分配给按钮?请帮忙

【问题讨论】:

  • 问题不清楚..请具体
  • 我在这个函数之外的脚本中做了。我使用了全局变量。编辑了我的问题
  • @Vaibs_Cool 我认为哪一部分说清楚了?
  • 您想设置从破折号到破折号范围的随机数......以及四个按钮 a,b,c,rand... 你得到的错误是什么......?
  • 我想将我的 rand 变量 1 分配给 10。并希望以这样的方式将这 4 个变量分配给按钮,即 rand 的正确答案不会只停留在选定的按钮上(比如 ist按钮)。

标签: jquery random


【解决方案1】:

你的分配也需要是随机的。我将建议一个不同的工作流程:

function generateOptions() {
  var randomValues = [];
  var currentValue;

  // First, generate 4 random values in the 1-10 range
  while(randomValues.length < 4) {
    currentValue = Math.floor(Math.random() * 9) + 1;

    // Avoid duplicates
    if(randomValues.indexOf(currentValue) < 0) {
      randomValues.push(currentValue);
    }
  }

  // Here, randomValues has 4 values
  // We then pick one to be the "right" one:

  var correctValue = randomValues[Math.floor(Math.random() * 4)];

  return {
    options: randomValues,
    correct: correctValue,
  };
}

然后,准备页面:

$(function() {
  var setup = generateOptions();

  // Assign each of the values to a button
  $("#nextbutton3").val(setup.options[0]);
  $("#nextbutton4").val(setup.options[1]);
  $("#nextbutton5").val(setup.options[2]);
  $("#nextbutton6").val(setup.options[3]);

  // That's the selector I've deduced from your markup. Feel free to change it
  $("input.finish").on("click", function() {
    // We need to parse the .val() as int, since it returns a string
    var selectedValue = parseInt($(this).val(), 10);

    if(selectedValue === setup.correct) {
      alert("Correct!");
    } else {
      alert("Wrong!");
    }
  });
});

一个简单的工作示例:http://jsbin.com/moyuqaha/1/edit?html,js,output(在专注于 js 窗口的同时按 ctrl+enter 以重新加载数字)

【讨论】:

    【解决方案2】:

    您可以将所有 4 个值放在一个数组中并随机排列它们在数组中的顺序,然后将它们分配给按钮。

    Randomizing elements in an array?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多