問題
1
jQuery
電卓を作ろう!
jQueryの問題に挑戦しよう!
問題
「電卓を作ろう!」
今回は電卓のプラスマイナス機能を作っていきましょう!かなりボリュームが多いですが、重要なポイントをたくさん学べる題材なのでしっかり学んでください。ここで一気にレベルアップしましょう!
あらかじめエディタに書くコード
<div class="display"></div>
<div class="box">
<div class="switch" id="1">1</div>
<div class="switch" id="2">2</div>
<div class="switch" id="3">3</div>
<div class="switch" id="4">4</div>
<div class="switch" id="5">5</div>
<div class="switch" id="6">6</div>
<div class="switch" id="7">7</div>
<div class="switch" id="8">8</div>
<div class="switch" id="9">9</div>
<div class="switch" id="0">0</div>
<div class="reset">AC</div>
<div class="result">=</div>
</div>
<div class="signal">
<div class="calculation" id="plus">+</div>
<div class="calculation" id="minus">-</div>
<div class="calculation" id="multiply">×</div>
<div class="calculation" id="divide">÷</div>
</div>
¥HTML¥
.display{
border: 2px solid black;
width: 150px;
height: 50px;
margin-bottom: 10px;
line-height: 50px;
text-align: right;
overflow: hidden;
}
.box{
width: 150px;
height:200px;
border: 1px solid black;
display: flex;
flex-wrap: wrap;
}
.switch,.reset,.result{
width: 50px;
height: 50px;
line-height: 50px;
text-align: center;
border: 1px solid black;
box-sizing: border-box;
cursor: pointer;
}
.signal{
width: 200px;
height: 50px;
border: 1px solid black;
margin-top: 10px;
display: flex;
}
.calculation{
width: 50px;
height: 50px;
border: 1px solid black;
cursor: pointer;
text-align: center;
line-height: 50px;
font-size: 1.4em;
}
¥CSS¥
期待する画面
解答と解説(電卓を作ろう!)
解説
LINE登録して解答を見る
※ご登録後トークルーム下部にあるメニュー内
「無料問題集※解答付き」を押すと
解答閲覧用URLが届きます
まず数字がクリックされたときにdisplayに表示する部分からです。これはクリックされたswitchのidをattrで取得し、displayにappendで取得した数値を付け足してあげます。
次にcalculationがクリックされたとき演算が決められるのでまずdisplayに入っている数字を保存しておきます。そしてdisplayの中を空にします。最後にクリックされたcalculationにactiveというクラスを与えてます。しかしこのままだと重複が発生するためクラスを与える前に、activeクラスを持っているものからactiveを剥奪しています。
次にリセットボタンですが、リセットは保存していたsaveNumを0にし、displayの中を空にすれば完成なのでとても簡単です。
最後に結果を出力するにはactiveクラスを持っている要素のidを取得し、その値によって処理を変更します。後ろの方に書いてあるコードで四則演算を定義しています。