JS實(shí)現(xiàn)簡(jiǎn)易計(jì)算器
用JS實(shí)現(xiàn)簡(jiǎn)易計(jì)算器,供大家參考,具體內(nèi)容如下
首先創(chuàng)建結(jié)構(gòu)和樣式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> body{ margin:0; padding:0; background-color: #abcdef; } .cal{ width:560px; height:100px; margin:0 auto; padding-top:300px; } </style> </head> <body> <div class="cal"> <p> <input type="text" class="num1" value="1"> <span class="sign">+</span> <input type="text" class="num2" value="1"> <span>=</span> <span class="res">2</span> </p> <p> <input type="button" value="+"> <input type="button" value="-"> <input type="button" value="*"> <input type="button" value="/"> </p> </div> <script> </script> </body> </html>
然后添加Java script
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> body{ margin:0; padding:0; background-color: #abcdef; } .cal{ width:560px; height:100px; margin:0 auto; padding-top:300px; } </style> </head> <body> <div class="cal"> <p> <input type="text" class="num1" value="1"> <span class="sign">+</span> <input type="text" class="num2" value="1"> <span>=</span> <span class="res">2</span> </p> <p> <input type="button" value="+" class="btn"> <input type="button" value="-" class="btn"> <input type="button" value="*" class="btn"> <input type="button" value="/" class="btn"> </p> </div> <script> var cal=document.querySelector(".cal"); var num1=cal.querySelector(".num1"); var num2=cal.querySelector(".num2"); var sign=cal.querySelector(".sign"); var res=cal.querySelector(".res"); var btns=cal.querySelectorAll(".btn"); btns[0].onclick=add; btns[1].onclick=subtract; btns[2].onclick=multiply; btns[3].onclick=divide; function add(){ sign.innerHTML="+"; //由于DOM獲取到的值都是字符串形式,因此進(jìn)行操作時(shí)需要先轉(zhuǎn)為number類(lèi)型 res.innerHTML=Number(num1.value)+Number(num2.value); } function subtract(){ sign.innerHTML="-"; res.innerHTML=Number(num1.value)-Number(num2.value); } function multiply(){ sign.innerHTML="*"; res.innerHTML=Number(num1.value)*Number(num2.value); } function divide(){ sign.innerHTML="/"; res.innerHTML=Number(num1.value)/Number(num2.value); } </script> </body> </html>
代碼的優(yōu)化:
循環(huán)實(shí)現(xiàn)綁定
給一個(gè)外部接口,用于新增運(yùn)算
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> body{ margin:0; padding:0; background-color: #abcdef; } .cal{ width:560px; height:100px; margin:0 auto; padding-top:300px; } </style> </head> <body> <div class="cal"> <p> <input type="text" class="num1" value="1"> <span class="sign">+</span> <input type="text" class="num2" value="1"> <span>=</span> <span class="res">2</span> </p> <p> <input type="button" value="+" class="btn" title="add"> <input type="button" value="-" class="btn" title="subtract"> <input type="button" value="*" class="btn" title="multiply"> <input type="button" value="/" class="btn" title="divide"> <input type="button" value="%" class="btn" title="mod"> </p> </div> <script> var cal=document.querySelector(".cal"); var num1=cal.querySelector(".num1"); var num2=cal.querySelector(".num2"); var sign=cal.querySelector(".sign"); var res=cal.querySelector(".res"); var btns=cal.querySelectorAll(".btn"); //給每個(gè)按鈕綁定事件 for(var i=0;i<btns.length;i++){ operate(i); } //運(yùn)算函數(shù) function operate(i){ var op=btns[i].value;//獲取運(yùn)算 var opName=btns[i].title;//獲取運(yùn)算名 //綁定事件 btns[i].onclick=function(){ sign.innerHTML=op; res.innerHTML=operation[opName](Number(num1.value),Number(num2.value)); } } var operation={ add:function(n1,n2){ return n1+n2; }, subtract:function(n1,n2){ return n1-n2; }, multiply:function(n1,n2){ return n1*n2; }, divide:function(n1,n2){ return n1/n2; }, //給一個(gè)新增運(yùn)算的接口 addOperation:function(name,fn){ //如果該運(yùn)算不存在 if(!this.name){ this[name]=fn; } } } //新增取余運(yùn)算 operation.addOperation("mod",function(n1,n2){ return n1%n2; }); </script> </body> </html>
這樣就圓滿(mǎn)完成咯
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- javascript寫(xiě)的簡(jiǎn)單的計(jì)算器,內(nèi)容很多,方法實(shí)用,推薦
- 簡(jiǎn)易js代碼實(shí)現(xiàn)計(jì)算器操作
- js實(shí)現(xiàn)簡(jiǎn)單計(jì)算器
- 用JS寫(xiě)的簡(jiǎn)單的計(jì)算器實(shí)現(xiàn)代碼
- javascript-簡(jiǎn)單的計(jì)算器實(shí)現(xiàn)步驟分解(附圖)
- html+js實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器代碼(加減乘除)
- javascript實(shí)現(xiàn)計(jì)算器功能
- JavaScript實(shí)現(xiàn)簡(jiǎn)單計(jì)算器
- vue.js實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器功能
- Vue.js實(shí)現(xiàn)立體計(jì)算器
- JS快速實(shí)現(xiàn)簡(jiǎn)單計(jì)算器
相關(guān)文章
javascript解決innerText瀏覽器兼容問(wèn)題思路代碼
innerText瀏覽器兼容這塊始終都是一個(gè)問(wèn)題,下面與大家分享下使用javascript解決,感興趣的朋友可以參考下哈,希望對(duì)你有所幫助2013-05-05深入理解JavaScript Promise鏈?zhǔn)秸{(diào)用與錯(cuò)誤處理機(jī)制
在JavaScript的異步編程中,Promise是一個(gè)非常重要的概念,它允許我們以鏈?zhǔn)降姆绞教幚懋惒讲僮?使得代碼更加清晰和易于管理,本文將通過(guò)一系列代碼示例,深入探討Promise的鏈?zhǔn)秸{(diào)用和錯(cuò)誤處理機(jī)制,需要的朋友可以參考下2024-09-09基于JavaScript實(shí)現(xiàn)驗(yàn)證碼功能
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)驗(yàn)證碼功能的相關(guān)資料2017-04-04微信小程序?qū)崿F(xiàn)簡(jiǎn)單Tab切換效果
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)簡(jiǎn)單Tab切換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05