html+css+jQuery写一个简单的计算器

写一个简单的计算器

由于代码不多,而且为了方便,就把css和js都写在html文件里就行了。

1. 搭建一个简单的架子

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>计算器</title>
    </head>
    <body>
		<table align="center">
			<tr>
				<td colspan="5"></td>
			</tr>
			<tr>
				<td>1</td>
				<td>2</td>
				<td>3</td>
				<td>+</td>
				<td>C</td>
			</tr>
			<tr>
				<td>4</td>
				<td>5</td>
				<td>6</td>
				<td>-</td>
				<td rowspan="3">=</td>
			</tr>
			<tr>
				<td>7</td>
				<td>8</td>
				<td>9</td>
				<td>*</td>
			</tr>
			<tr>
				<td>00</td>
				<td>0</td>
				<td>.</td>
				<td>/</td>
			</tr>
		</table>
	</body>
</html>

2. 增加一些样式

<style>
            *{
                margin: 0;
                padding: 0;
            }
            table{
                /*表格的样式*/
                width:500px;
				height:500px;
				border: 1px solid black;
				background-color: #999999;
				cellspacing:0px;
            }
            td{
                /*td节点正常的样式*/
                cursor: pointer;
				width:40px;
				height: 30px;
				border: 1px solid #FFFFFF;
				background: #999999;
				color: #FFFFFF;
				text-align: center;
				font-weight: bold;
				font-family: "微软雅黑";
            }
            td:hover{
                /*鼠标悬停在td节点时的样式*/
                background: #008000;
            }
        </style>

3. js实现计算功能

注意,需要因为使用了jQuery,所以需要先导入该框架,就是下面代码的第一个script

<script src="./jquery-1.9.1.min.js"></script>
<script>
    $(function () {
        var str = "";
        // 获取输入框的节点
        var $input = $("table tr:eq(0) td");
    	// 用户点击任何一个td节点都会触发下面的点击事件
        $("td").click(function () {
            // 获取用户点击的那个td节点的文本内容
            var text = $(this).html();
            console.log(text);
            if (text == "="){
                try{
                    /* 当用户点击的是=的时候,我们应该计算此时表达式的值,然后在输入框(第一个td节点)打印出来
                    * 下面代码中的eval(str),就是计算表达式的值,如果表达式不是一个正规的数学表达式,那么会抛出异常
                    */
                    $input.html(eval(str));
                } catch (e) {
                    // 说明抛出了异常,那么我们应该在输入框提示用户输入非法
                    $input.html("<span style='color: red;'>非法输入!</span>");
                } finally {
                    // 最后让表达式变为最初的空字符串
                    str = "";
                }
            } else if (text == "C"){
                // 用户点击了C这个节点,那么表示要清空输入框中的内容
                str = "";
                $input.html(str);
            } else {
                // 表达式累加,然后在输入框显示。
                str += text;
                $input.html(str);
            }
        })
    })
</script>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大骨熬汤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值