前提・実現したいこと
JavaScriptを使って自由に値が入力可能なFizzBuzzアプリを作成しています。
実現したい内容は1度計算結果を表示し、値を再入力した時に前回計算した結果の表示を削除して、新たな計算結果を表示することです。
上の処理を同一の実行ボタンで行いたいのですが追加した要素の削除の仕方がわかりません。
私が試した解決策は
①innnerhtmlに空文字('')を入れる
②remove()を使う
2点の解決策を自分なりにコードを書いてみて実行しましたが、そもそも解決策の方向性が間違っているのかコードの処理の流れに問題があるのかさえ不明な状態です。
初学者であるため初歩的な質問で大変恐縮ではありますが、理由など一緒に添えて回答頂けますと幸いです。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
JavaScript
1'use strict'; 2 3{ 4 // Fizz Buzz計算式 5 document.querySelector('button').addEventListener('click', () => { 6 7 for(let i = 1; i < 101; i++) { 8 9 // inputに入力された値を代入 10 let form1 = document.getElementById('fizznumber'); 11 let fizz = form1.value; 12 let form2 = document.getElementById('buzznumber'); 13 let buzz = form2.value; 14 15 let x = fizz; 16 let y = buzz; 17 18 // documentに計算結果を表示する 19 let output = document.getElementById('output'); 20 let div = document.createElement('div'); 21 let result = output.appendChild(div); 22 23 // 計算式 24 if (!isNaN(x) && !isNaN(y)) { // 数字かどうか調べる 25 if (i % (x * y) === 0) { 26 result.innerHTML = `fizzBuzz${i}`; 27 } else if (i % x === 0) { 28 result.innerHTML = `fizz${i}`; 29 } else if (i % y === 0) { 30 result.innerHTML = (`Buzz${i}`); 31 } 32 } else { 33 result.innerHTML = '数字を入力して下さい'; 34 return 35 } 36 } 37 }); 38}
試したこと
①
JavaScript
1 document.querySelector('button').addEventListener('click', () => { 2 if (result.innerHTML === '') { 3 fizzbuzz(); 4 5 } else { 6 result.innerHTML === '' 7 fizzbuzz(); 8 } 9 });
②
JavaScript
1document.querySelector('button').addEventListener('click', () => { 2 if (result.innerHTML === '') { 3 4 fizzbuzz(); 5 6 } else { 7 result.remove(); 8 fizzbuzz(); 9 } 10 });
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/07 12:20