keisan.js
の中身はこんな感じでしょうか。
JavaScript
1// <head>タグに<script>タグを書いた場合そのタイミングではまだHTMLタグに対応するオブジェクトができていないので、
2// ページの読み込みが完了するまで待つ
3window.addEventListener('load', function () {
4 var id1 = document.getElementById('1'); // <input id="1">を取得
5 var id2 = document.getElementById('2'); // <input id="2">を取得
6 var keisan = document.getElementById('keisan'); // <button id="keisan">を取得
7 var kekka = document.getElementById('kekka'); // <span id="kekka">を取得
8
9 // <button id="keisan">がクリックされたときの動作を指定
10 keisan.addEventListener('click', function () {
11 var val1 = parseInt(id1.value, 10); // <input id="1">に入力された文字列を数値として取得
12 var val2 = parseInt(id2.value, 10); // <input id="2">に入力された文字列を数値として取得
13 kekka.innerHTML = val1 + val2; // 二つの値を足した結果を、<span id="kekka">に表示
14 });
15});
この中で使っている関数やメソッドについて説明していきます。
document.getElementById
は、HTML中で指定したid
属性の値から、その要素に対応するJavaScriptのオブジェクトを取得する関数です。
参考: document.getElementById - Web API インターフェイス | MDN
addEventListener
はそうして取得したオブジェクトにあるメソッドで、要素に対してあるイベントが発生したときの動作を指定することができます。第一引数にイベント名を、第二引数にその際に実行する動作となる関数を指定します。
参考: EventTarget.addEventListener - Web API インターフェイス | MDN
id1.value
やid2.value
は、要素に入力された値を表す文字列が格納されています。
parseInt
は引数として渡された文字列を数値に変換します。第二引数は基数を表します。
参考: parseInt() - JavaScript | MDN
innerHTML
は要素の内側にあるHTMLを文字列で格納しています。逆に代入することでHTMLの内容を書き変えることができます。
追記:
コメントで+
/-
を切り替えられるようにしたいとのことなので、その場合keisan.js
は、
JavaScript
1// <head>タグに<script>タグを書いた場合そのタイミングではまだHTMLタグに対応するオブジェクトができていないので、
2// ページの読み込みが完了するまで待つ
3window.addEventListener('load', function () {
4 var id1 = document.getElementById('1'); // <input id="1">を取得
5 var id2 = document.getElementById('2'); // <input id="2">を取得
6 var houhou = document.getElementById('houhou'); // <select id="houhou">を取得
7 var keisan = document.getElementById('keisan'); // <button id="keisan">を取得
8 var kekka = document.getElementById('kekka'); // <span id="kekka">を取得
9
10 // <button id="keisan">がクリックされたときの動作を指定
11 keisan.addEventListener('click', function () {
12 var val1 = parseInt(id1.value, 10); // <input id="1">に入力された文字列を数値として取得
13 var val2 = parseInt(id2.value, 10); // <input id="2">に入力された文字列を数値として取得
14 kekka.innerHTML = houhou.value === '+' ? val1 + val2 : val1 - val2; // 二つの値を計算した結果を、<span id="kekka">に表示
15 });
16});
となります。