Lshah
2016-03-22 21:03
能帮我看下哪出错了吗
Q1:放在外面为什么结果是 undifined呢?
因为html的执行顺序是从上至下的。你的 <script></script>是在上面的,
所以你在执行var a=parseInt(document.getElementById("txt1").value)时;页面中的input还没有加载出来。获得不到这个元素,所以显示为undifined而不是NaN;
你可以自己测试一下:
(1)把<script>代码</script>放在<head>里。显示为undifined。
(2)把<script>代码</script>放在页面最下面<body>里。显示为NAN;所以一般推荐将JS代码放在下面。
Q2:但是为什么要放在函数里面呢?
如果放在外边,页面加载完成后就已经执行了
var a=parseInt(document.getElementById("txt1").value);
var b=parseInt(document.getElementById("txt2").value);
var c=document.getElementById("select").value;
var d="";
而此刻你的输入框里还是空的。所以a =NaN,b=NaN;
当你输入数字时, 完点击“=”,调用count()方法时。a,b,的仍为NaN;
放在里面,点击“=”时,才获取a,b输入框的值。所以就不为NaN ,就正确了啊。
这样说明白了吗?
我知道哪出错了,
var a=parseInt(document.getElementById("txt1").value);
var b=parseInt(document.getElementById("txt2").value);
var c=document.getElementById("select").value;
var d="";
应该放在函数里面,但是为什么要放在函数里面呢?放在外面为什么结果是 undifined呢?
JavaScript进阶篇
468194 学习 · 21891 问题
相似问题