前提
inputに数値を入力するとリアルタイムに計算結果(足し算)が反映される仕組みを作りたいと思っています。
JavaScriptを書いてみたのですが、inputに数値を入力すると計算結果がNaNとなってしまいます。
実現したいこと
inputに数値を入力すると
html
1<td id="sum-p1"></td>
にリアルタイムで計算結果(足し算)を出す
該当のソースコード
html
1<table> 2 <tbody id="score"> 3 <tr> 4 <th>1</th> 5 <td class="score-p1"><input type="number"></td> 6 </tr> 7 <tr> 8 <th>2</th> 9 <td class="score-p1"><input type="number"></td> 10 </tr> 11 <tr> 12 <th>3</th> 13 <td class="score-p1"><input type="number"></td> 14 </tr> 15 <tr> 16 <th>4</th> 17 <td class="score-p1"><input type="number"></td> 18 </tr> 19 <tr> 20 <th>5</th> 21 <td class="score-p1"><input type="number"></td> 22 </tr> 23 </tbody> 24 <tfoot> 25 <tr> 26 <th>合計</th> 27 <td id="sum-p1"></td> 28 </tr> 29 </tfoot> 30</table>
JavaScript
1window.onload = function(){ 2// 要素を取得 3const score = document.getElementById('score'); 4const scoreElements = score.querySelectorAll('.score-p1 input'); 5var price = 0; 6 7// 取得した要素を反復処理 8for (let i = 0; i < scoreElements.length; i += 1) { 9 const element = scoreElements[i]; 10 price += parseInt(element.textContent); 11} 12 13score.addEventListener('keyup', () => { 14 document.getElementById('sum-p1').innerText = price; 15}); 16}
なぜNaNになるのか分からず。。
どうぞよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2022/12/02 01:57