如何在html体上打印功能结果?

时间:2016-12-21 21:24:21

标签: javascript function display dice

我需要在span上显示y的结果。

目前,当我点击播放按钮时,它对我没有任何作用。 我的代码可能存在更多问题。

我需要做的功能是在输入框中输入用户输入的数字,将其转换为int,并将其存储在“x”中。 Y是存储此循环发生的时间量。 当x大于0时,掷骰子得到总和。

如果sum恰好是7,则

x + 4,否则为x-1。 每次这个函数循环,x-1。

感谢。

function playLoop() {
  var x = parseInt(document.getElementById("amount").val());
  var y = 0;
  while (x > 0) {
    var die1 = Math.floor((Math.random() * 6) + 1);
    var die2 = Math.floor((Math.random() * 6) + 1);
    if (die1 + die2 == 7) {
      x + 4;
    } else {
      x - 1;
    }
  }
  x--
  y++
  document.getElementById("result").innerHTML = y;
}
<div class="container">
  <label>Starting Bet:</label>
  <input id="amount" type="text">
  <button onclick="playLoop()">Play</button>
  <span id="result"></span>
</div>

2 个答案:

答案 0 :(得分:1)

获取input元素值的方法是.value,而不是.val()(这是一个jQuery方法)。

您的while()循环永远不会结束,因为您永远不会在循环期间修改xx + 4应为x += 4x - 1应为x -= 1x--

你需要在循环内增加y并减少x,而不是在结尾。

&#13;
&#13;
function playLoop() {
  var x = parseInt(document.getElementById("amount").value);
  var y = 0;
  while (x > 0) {
    var die1 = Math.floor((Math.random() * 6) + 1);
    var die2 = Math.floor((Math.random() * 6) + 1);
    if (die1 + die2 == 7) {
      x += 4;
    } else {
      x--;
    }
    y++;
    x--;
  }

  document.getElementById("result").innerHTML = y;
}
&#13;
<div class="container">
  <label>Starting Bet:</label>
  <input id="amount" type="text">
  <button onclick="playLoop()">Play</button>
  <span id="result"></span>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您使用的是.val(),它不是函数,但.value()是。

var x = parseInt(document.getElementById("amount").value());