请老师检查,优化一下。
来源: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,怎么改才能让代码看起来更优雅一点呢?
相似问题