为什么结果是NaN
<!DOCTYPE html> <html> <head> <title> 事件</title> </head> <body> <input type='text' id='num1' /> <select id='operate'> <option value='+' title='add'>+</option> <option value="-" title="subtract">-</option> <option value="*" title="multiply">*</option> <option value="/" title="divide">/</option> </select> <input type='text' id='num2' /> <input type='button' value=' = ' /> <input type='text' id='result' value="" /> <script type="text/javascript"> var num1 = document.getElementById("num1").value; var num2 = document.getElementById("num2").value; var sign = document.getElementsByTagName("option"); var operate = document.getElementById("operate") var result = document.getElementById("result") var obj = { "+": function(num1, num2) { return +num1 + +num2 }, "-": function(num1, num2) { return num1 - num2 }, "*": function(num1, num2) { return num1 * num2 }, "/": function(num1, num2) { return num1 / num2 } } function setSign() { operate.addEventListener("change", function() { result.value = obj[this.value](); console.log(this.title) }) } setSign() </script> </body> </html>
1
收起
正在回答 回答被采纳积分+1
3回答
好帮手慕言
2019-10-17 13:47:29
同学你好,可能是老师表达的不完整,让同学产生了误会。在点击operate时,如果输入框里面输入了内容,是可以获取到的,前提是在operate绑定的事件里去获取输入框中的内容。代码如下:
在两个输入框中输入内容之后,再切换operate。
控制台:
从编程题的效果图中可以看出,是点击=号时,输入结果哦。事件应该绑定在=号上。
同学可以自己写一写,如果没有思路的话,可以参考这位同学的,链接:https://class.imooc.com/course/qadetail/160105
为了更高效的为同学解答,如果还有其他疑问的话,可以新建一个问答进行提问哦。
如果帮助到了你,欢迎采纳~祝学习愉快~
好帮手慕言
2019-10-16 14:30:14
同学你好,
1、首先调用obj里面的函数时,需要传递参数,同学没有传。
2、如果按照同学的写法,那么num1和num2的value值一直是空。
建议如下写法:
但是如果要计算加法,那么只有在改变operate里面的内容(默认显示的是+,只有在切换到-或者/或者*后,再点击+,才会计算加法)
同学的这种思路可能不太准确。
建议:可以参考这位同学的思路哦,链接:https://class.imooc.com/course/qadetail/160105
如果帮助到了你,欢迎采纳~祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星