检查一下代码
来源:4-8 编程练习
weixin_慕的地5241954
2019-09-18 04:38:26
<!DOCTYPE html>
<html>
<head>
<title> 事件</title>
</head>
<body>
<input type='text' id='num1' />
<select id='operate'>
<option value='+'>+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type='text' id='num2' />
<input type='button' value=' = ' onclick="count()" />
<input type='text' id='result' />
<script type="text/javascript">
// 封装获取id的方法
function byID(id) {
return typeof (id) === 'string' ? document.getElementById(id) : id;
}
// 加
function addHandler(num1, num2) {
return +num1 + +num2;
}
// 减
function subtractHandler(num1, num2) {
return num1 - num2;
}
// 乘
function multiplyHandler(num1, num2) {
return num1 * num2;
}
// 除
function divideHandler(num1, num2) {
return num1 / num2;
}
function count() {
/*此处写代码*/
var num1 = byID('num1').value;
var num2 = byID('num2').value;
var operate = byID('operate').value;
var result = byID('result');
// 这里为什么不能byID('result').value?
console.log(operate)
// 遍历符号,计算
switch (operate) {
case '+':
result.value = addHandler(num1, num2);
break;
case '-':
result.value = subtractHandler(num1, num2);
break;
case '*':
result.value = multiplyHandler(num1, num2);
break;
case '/':
result.value = divideHandler(num1, num2);
break;
}
}
</script>
</body>
</html>检查一下代码,看看我的注释,还有就是代码如何优化?比如位置该如何调整、算法如何服装到一个对象里面?
2回答
你好同学,老师第一次在截图中写的不是赋值,是获取哦。请同学再认真看一下注释。byID('result').value;是获取空字符,所以result =“”,此时result 就不是一个dom元素了,而是一个空字符串,所以下面使用 result.value肯定会报错的。再次强调,此时result不是一个dom元素了,所以没有办法重新给input元素设置value值哦。
祝学习愉快,望采纳。
好帮手慕夭夭
2019-09-18
你好同学,问题参考如下:

本题的代码很简单简洁了,不用再优化了。祝学习愉快,望采纳。
相似问题