请老师检查,优化一下。

来源:2-1 结构和样式

今天也要加了个油

2020-08-31 16:21:33

<!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回答

好帮手慕码

2020-08-31

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

http://img.mukewang.com/climg/5f4cbb27097fd04a02930588.jpg

祝学习愉快~

0

今天也要加了个油

提问者

2020-08-31

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

0

0 学习 · 14456 问题

查看课程