2016-12-21 10 views
1

スパンにyの結果を表示する必要があります。関数の結果をhtml本文に出力するには?

現在、再生ボタンをクリックすると、私には何もしません。 私のコードにはさらに問題があるかもしれません。

私は、入力ボックス内に入力された数値をintに変換して "x"の内部に格納するという機能が必要です。 Yは、このループが発生する時間を格納します。 xが0より大きい間は、サイコロを振って合計を求めます。

x + 4が正確に7ならば、それ以外は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>

+0

'.val()' jQueryの方法です。通常のJavascriptでは '.value'です。 – Barmar

答えて

0

あなたは関数ではありませんが、.VALUE()である)(.valを使用しています。

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

入力要素の値を取得する方法(すなわちjQueryのメソッドの)と.value、ない.val()あります。

while()ループ中にxを変更しないため、ループは終了しません。 x + 4x += 4であり、x - 1x -= 1またはx--である必要があります。

そして、ループの内側ではなく、yを増やして、減算xを増やす必要があります。

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; 
 
}
<div class="container"> 
 
    <label>Starting Bet:</label> 
 
    <input id="amount" type="text"> 
 
    <button onclick="playLoop()">Play</button> 
 
    <span id="result"></span> 
 
</div>

+0

現在動作中です。ありがとう。 – FeCH

関連する問題