【現在の状況】
①フォームに数字を入れて実行ボタンを押す→
②その後、続けて、新しく数字を入力し再度実行ボタンを押す→
③表示が切り替わらず、計算ができない(一度更新しないと計算できない)
【目標】
①フォームに数字を入れて実行ボタンを押す→
②その後、続けて、新しく数字を入力し再度実行ボタンを押す→
③画面が切り替わり、数字を計算できる(更新せずとも、計算ができる)
ただ、「fizzbuzzを一度実行した後、再度実行した際に表示を切り替える」動作をするためにどういうコードを使うべきか、ググってみたのですが見つかりません。
「計算 上書き Javascript」「画面 切り替え Javascript」「実行 切り替え javascript」など色々ググってみたのですが、ヒットせず。
今回の事例(「fizzbuzzを一度実行した後、再度実行した際に表示を切り替える」)とドットインストールの割勘アプリに出てくる機能が似ていると感じました。
https://dotinstall.com/lessons/go_dutch_js_v2/33906
http://samples.dotinstall.com/s/go_dutch_js_v2/33906/
「innerHTML」かなと思ったのですが、別の事例のようにも感じます。
<html lang="ja"> <head> <meta charset="utf-8"> <title>FizzBuzz問題</title> </head> <body> <p> FizzNum: <input type="text" id="fizzInput" value="" placeholder ="整数値を入力してください"> </p> <p> BuzzNum:<input type="text" id="buzzInput" value="" placeholder ="整数値を入力してください"> </p> <button id="btn">実行</button> <p>【出力】</p> <p>整数値を入力してください</p> <script> 'use strict'; { const fizzForm = document.getElementById ('fizzInput'); const buzzForm = document.getElementById ('buzzInput'); const btn = document.getElementById('btn'); btn.addEventListener('click', function() { const fizzNum = parseFloat(fizzForm.value); const buzzNum = parseFloat(buzzForm.value); if (Number.isInteger(fizzNum) && Number.isInteger(buzzNum)) { } else { console.log(alert('エラーメッセージ「整数値を入力してください」')); } for (let number = 1; number <= 100; number++) { console.log(Number.isInteger(fizzNum)); console.log(Number.isInteger(buzzNum)); if(number % fizzNum === 0 && number % buzzNum === 0) { const p = document.createElement('p'); p.textContent = ("FizzBuzz" + " "+ number); document.body.appendChild(p); } else if(number % fizzNum === 0) { const p = document.createElement('p'); p.textContent = ("Fizz" + " " + number); document.body.appendChild(p); } else if(number % buzzNum === 0) { const p = document.createElement('p'); p.textContent = ("Buzz" + " " + number); document.body.appendChild(p); } } }); } </script> </body> </html> コード
回答2件
あなたの回答
tips
プレビュー