为了账号安全,请及时绑定邮箱和手机立即绑定

能帮我看下哪出错了吗

能帮我看下哪出错了吗

正在回答

2 回答

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 ,就正确了啊。

这样说明白了吗?


0 回复 有任何疑惑可以回复我~
#1

Lshah 提问者

不好意意思想问一下NAN什么意思呢
2016-03-24 回复 有任何疑惑可以回复我~
#2

蝎子126 回复 Lshah 提问者

not a number 的缩写。因为你用parseInt将字符串转为int类型了。所以提示的是NaN.
2016-03-24 回复 有任何疑惑可以回复我~
#3

Lshah 提问者 回复 蝎子126

哦哦 谢谢哈
2016-03-24 回复 有任何疑惑可以回复我~
#4

蝎子126 回复 Lshah 提问者

哈哈~不客气~
2016-03-24 回复 有任何疑惑可以回复我~
查看1条回复

我知道哪出错了,

var a=parseInt(document.getElementById("txt1").value);
   var b=parseInt(document.getElementById("txt2").value);
   var c=document.getElementById("select").value;
   var d="";

应该放在函数里面,但是为什么要放在函数里面呢?放在外面为什么结果是 undifined呢?

0 回复 有任何疑惑可以回复我~
#1

请叫我橙子蛋

刚开始以为是你定义a b 的类型错了,后来发现是你定义这三个类型的位置不对。 按你这个代码页面运行的时候先读取了input的值。。你后面执行点击事件的时候根本没有去值,当然计算不出来了大兄弟
2016-03-23 回复 有任何疑惑可以回复我~
#2

Lshah 提问者 回复 请叫我橙子蛋

但是放在外面不是全局变量吗?我不是特别懂你解释的问题,能详细点吗?谢谢你~
2016-03-23 回复 有任何疑惑可以回复我~
#3

请叫我橙子蛋 回复 Lshah 提问者

我的意思是把这几句放在点击事件里面
2016-03-23 回复 有任何疑惑可以回复我~
#4

Lshah 提问者 回复 请叫我橙子蛋

为什么放在外面不行呢? 设置的是全局变量啊,应该都可以用啊
2016-03-23 回复 有任何疑惑可以回复我~
#5

请叫我橙子蛋 回复 Lshah 提问者

如果放在外面,你点击计算按钮的时候没有仔细这几句,也就没有取到用户输入的值了
2016-03-23 回复 有任何疑惑可以回复我~
#6

Lshah 提问者 回复 请叫我橙子蛋

哦哦,谢谢你~
2016-03-23 回复 有任何疑惑可以回复我~
查看3条回复

举报

0/150
提交
取消

能帮我看下哪出错了吗

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信