请老师检查,优化一下。

请老师检查,优化一下。

<!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>
        span{display: inline-block;width: 20px;text-align: center;}
    </style>
</head>
<body>
    <section>
        <p>
            <input type="text" id="num1">
            <span id="operation_sign">+</span>
            <input type="text" id="num2">
            <span>=</span>
            <span id="output">?</span>
        </p>
        <p id="btn">
            <button id="add">+</button>
            <button id="subtract">-</button>
            <button id="multiply">×</button>
            <button id="divide">÷</button>
        </p>
    </section>
    <script src="js/jquery-3.5.1.min.js"></script>
    <script>
        $('#btn').click(function(e){
            var target = e.target,
                val1 = $('#num1').val(),
                val2 = $('#num2').val(),
                result = null;
            if(target.tagName!=='BUTTON'){return;}
            else if(!val1 || !val2){
                alert('不能为空!');
                return;
            }
            else if(isNaN(val1) || isNaN(val2)){
                alert('请输入数字!');
                return;
            }
            else if(target.id==='divide'){
                $('#operation_sign').text( $(target).text() );
                if(val2==0){
                    alert('除数不能为0!');
                    $('#num2').val(null);
                    $('#output').text(null);
                    return;
                }
            }
            $('#operation_sign').text($(target).text());
            val1=Number(val1);
            val2=Number(val2);
            result = {
                add: val1+val2,
                subtract: val1-val2,
                multiply: val1*val2,
                divide: val1/val2
            }[target.id];
            $('#output').text(result);
        });
    </script>
</body>
</html>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,效果实现的很棒!因为功能比较多,所以使用一些if...else也是正常的,可以不优化了。另,如果想要把代码实现的更加高级一些,可以看下本章视频,使用组件化的思想来实现下:

http://img1.sycdn.imooc.com//climg/5f4cbb27097fd04a02930588.jpg

祝学习愉快~

提问者 今天也要加了个油 2020-08-31 16:22:50

写了一堆if else 感觉好low,怎么改才能让代码看起来更优雅一点呢?

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师