请老师检查,优化一下。
来源: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回答
同学你好,效果实现的很棒!因为功能比较多,所以使用一些if...else也是正常的,可以不优化了。另,如果想要把代码实现的更加高级一些,可以看下本章视频,使用组件化的思想来实现下:
祝学习愉快~
今天也要加了个油
提问者
2020-08-31
写了一堆if else 感觉好low,怎么改才能让代码看起来更优雅一点呢?
相似问题