質問失礼いたします。現在javascriptで電卓を作成しています。
そこで行き詰ったところが、クリックした数字をinputのvalue属性に反映させ、表示させるという動作です。
自分は、jsでinputのvalue属性を取得し、それにクリックした要素のtextContent(今回は数字)を代入することを試みました。
しかし、value属性に数字は反映されなかったです。これは何が原因で反映されないのでしょうか。
初歩的な質問で恐れ入りますが、ご教授おお願いいたします。
html
1<!DOCTYPE html> 2<html lang="js"> 3<head> 4 <meta charset="UTF-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <link rel="stylesheet" href="css/style.css"> 8 <link rel="stylesheet" href="css/reset.css"> 9 <title>Document</title> 10</head> 11<body> 12 13 <div class="eval-wrapper"> 14 <div class="eval-ttl">電 卓</div> 15 <div class="eval-content"> 16 <input type="text" value="0" name="eval" class="input" placeholder=""> 17 <div class="c" id="sign">C</div> 18 </div> 19 <div class="eval-signs"> 20 <ul class="eval-list"> 21 <li class="eval-item1 number" id="sign">7</li> 22 <li class="eval-item2 number" id="sign">8</li> 23 <li class="eval-item3 number" id="sign">9</li> 24 <li class="eval-item4" id="sign">÷</li> 25 <li class="eval-item5 number" id="sign">4</li> 26 <li class="eval-item6 number" id="sign">5</li> 27 <li class="eval-item7 number" id="sign">6</li> 28 <li class="eval-item8" id="sign">×</li> 29 <li class="eval-item9 number" id="sign">1</li> 30 <li class="eval-item10 number" id="sign">2</li> 31 <li class="eval-item11 number" id="sign">3</li> 32 <li class="eval-item12" id="sign">-</li> 33 <li class="eval-item13 number" id="sign">0</li> 34 <li class="eval-item14" id="sign">.</li> 35 <li class="eval-item15" id="sign">+</li> 36 <li class="eval-item16" id="sign">=</li> 37 </ul> 38 </div> 39 </div> 40 41 42 43 44 <script src="js/main.js"></script> 45</body> 46</html>
js
1 2(function(){ 3 4 5 let num = document.querySelectorAll('.number') 6 7 num.forEach((num) => { 8 num.addEventListener('click',function(e){ 9 let val = document.querySelector('.input').defaultValue; 10 let numVal = e.currentTarget.textContent; 11 val = numVal; 12 console.log(val); 13 14 15 16 }); 17 }); 18 19})();