<!doctype html> <html> <head> <meta charset="utf-8"> <title>简易计算器</title> <style> #div{ width: 300px; height: 500px; background: #ccc; margin: auto; border: 1px solid red; } table{ width: 97%; height: 480px; border: 1; align:center; cellspacing:"10" } td{ width: 26%; height: auto; border: 1px solid red; text-align: center; font-weight: bold; color: blue; } </style> <script> var tds = null; //定义一个空的全局对象 var jg = null, dy = null, tg = null; window.onload = function(){ //因为以后都是外部引用JS文件,因为程序加载执行顺序的问题,设置一个文档加载完成后调用方法的事件 tds = document.getElementsByTagName("td"); //找到所有的对象 jg = document.getElementById("jg"); dy = document.getElementById("dy"); tg = document.getElementById("tg"); addEvent(); //文档加载完成后调用这个方法 } function addEvent(){ for(var i = 0 ;i<tds.length;i++){ //循环下标用来找出所有的单元格 var zhi = tds[i].getAttribute("id"); //找出带id属性的单元格 if(zhi){ //当本次循环有带id属性的 continue; //那么跳过本次循环 } tds[i].onclick = function(){ //后给这个单元格添加点击事件并调用方法 jg.innerHTML += this.innerHTML; //此处用到字符串拼接的方法 每点击一次和上一次的字符串拼接(用来作为下边的计算) } } //给等于号添加点击事件 dy.onclick = function(){ //当点击等于号的时候 jg.innerHTML = eval(jg.innerHTML); //结果显示在HTML文档中并赋值(eval()函数会将字符串转换为JavaScript代码执行) } //当点击退格的时候调用这个函数 tg.onclick = function(){ var str = jg.innerHTML; //找到在结果显示中的字符串 jg.innerHTML = str.substr(0,str.length-1); //赋值(substr()这个是字符串方法,用来截取(保留)从0到倒数第二个,也就是当每次点击的时候会退一格) } } </script> </head> <body> <!--在div里面创建一个表格用来作为计算器的按键使用--> <div id="div"> <!--这个id用来设置计算器面板的样式--> <table> <tr> <td colspan="3" id="jg"></td> <!--这里作为显示使用--> <td id="tg">退格</td> <!--加退格功能--> </tr> <tr> <td>7</td> <td>8</td> <td>9</td> <td>/</td> </tr> <tr> <td>4</td> <td>5</td> <td>6</td> <td>+</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> <td>-</td> </tr> <tr> <td>.</td> <td>0</td> <td id="dy">=</td> <!--准备给等于号单独设置点击事件并调用方法--> <td>*</td> </tr> </table> </div> </body> </html>