質問があります。
電卓を作成しています(まだ途中です)。
電卓のファイルは以下の通りです。
html
1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="utf8"> 5 <title>電卓</title> 6 </head> 7 <body> 8 電卓 9 <p> 10 <input id="ans" size="20" readonly></input><br> 11 <button id="one" > 1 </button> 12 <button id="two" > 2 </button> 13 <button id="three" > 3 </button> 14 <button id="four" > 4 </button> 15 <button id="five" > 5 </button><br> 16 <button id="six" > 6 </button> 17 <button id="seven"> 7 </button> 18 <button id="eight"> 8 </button> 19 <button id="nine"> 9 </button> 20 <button id="zero"> 0 </button><br> 21 <button id="plus"> + </button> 22 <button id="minus"> - </button> 23 <button id="mul"> * </button> 24 <button id="div" > / </button> 25 <button id="equ"> = </button> 26 27 </p> 28<script src="dentaku.js"></script> 29 </body> 30</html>
HTMLの実行結果です。
そして、javascriptのファイルです。
javascript
1 var kotae = document.getElementById('ans'); 2 var iti = document.getElementById('one'); 3 var ni = document.getElementById('two'); 4 var san = document.getElementById('three'); 5 var yon = document.getElementById('four'); 6 var go = document.getElementById('five'); 7 var roku = document.getElementById('six'); 8 var nana = document.getElementById('seven'); 9 var hati = document.getElementById('eight'); 10 var kyu = document.getElementById('nine'); 11 var zyu = document.getElementById('zero'); 12 var tasu = document.getElementById('plus'); 13 var hiku = document.getElementById('minus'); 14 var kakeru = document.getElementById('mul'); 15 var waru = document.getElementById('div'); 16 var ikoru = document.getElementById('equ');
javascriptはDOMの取得で終わっています。
これから、例えば、1の数字のボタンを押したら、テキストボックスに1を表示したい場合、
javascript
1 2iti.onclick = click1; 3function click1(){ 4 kotae.textContent = '1'; 5 }
のようにやるのかと考え、htmlを開いてみたら、押しても反応しませんでした。このような方法では、テキストボックス上に表示できないのでしょうか?
また、このようなイベントハンドラを設定する際に、19の数字一つ一つ繰り返し入力しなければならないのでしょうか?19の数字全てに共通するイベントハンドラ(1~9の数字をクリックしたら、テキストボックス上にその数字を表示)を作成できないのかが知りたかったため、質問させていただきます。
まずは1桁の計算ができるようになりたいので、12とか32などの数字が入力されることは考えていません。
分かる方がいらっしゃいましたら、ご教示お願いします。
追記
javascript
1var kotae = document.getElementById('ans'); 2 var zeroToNine = ["zero", "one", "two", "three", "four", 3 "five", "six", "seven", "eight", "nine"]; 4 var digitElements = new Array(10); 5 var tasu = document.getElementById('plus'); 6 var hiku = document.getElementById('minus'); 7 var kakeru = document.getElementById('mul'); 8 var waru = document.getElementById('div'); 9 var ikoru = document.getElementById('equ'); 10 11 for (var i = 0; i <= 9; i++) { 12 digitElements[i] = document.getElementById(zeroToNine[i]); 13 digitElements[i].onclick = function() { 14 // アラビア数字に変換 15 var digit = zeroToNine.indexOf(this.id) + ''; 16 kotae.value = digit; //一つ目の数値 17 }; 18 } 19 for (var i = 0; i <= 9; i++) { 20 digitElements[i] = document.getElementById(zeroToNine[i]); 21 digitElements[i].onclick = function() { 22 // アラビア数字に変換 23 var digit2 = zeroToNine.indexOf(this.id) + ''; 24 kotae.value = digit2; //2つ目の数値 25 }; 26 } 27
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/07 12:21
2016/11/07 12:35
2016/11/07 13:40
2016/11/08 00:39