检查一下代码
来源: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
你好同学,问题参考如下:
本题的代码很简单简洁了,不用再优化了。祝学习愉快,望采纳。
相似问题