0

我是一名刚刚学习 HTML 的大学生。我必须完成的作业是一个简单的成绩计算器。有一个按钮可以计算所有内容,值转到三个空文本字段(总计、平均值和百分比)。我遇到的问题是总数被计算并显​​示在字段中,但数字后面是 [object]。平均字段显示 NaN,百分比字段保持为空。这是我的代码。

      <input type="button" value="Click to calculate" 
      onclick="fullmark = parseFloat(document.getElementById('fullBox').value);
                science = parseFloat(document.getElementById      ('scienceBox').value);
                math = parseFloat(document.getElementById('mathBox').value);
                computer = parseFloat(document.getElementById('computerBox').value);
                english = parseFloat(document.getElementById('englishBox').value);
                History = parseFloat(document.getElementById('historyBox').value);
               total=science+math+computer+english+history;
               average=(total/5);
               percentage=(total/fullmark)*100;
               document.getElementById('totalBox').value=total;
               document.getElementById('averageBox').value=average;
               document.getElementById('percentageBox').value=percentage;">
4

1 回答 1

0

由于您首先写History为变量名,然后history在计算/分配值时使用total,这是一个不同的变量 - JavaScript中的标识符区分大小写。

你没有让你的脚本因为一个未定义变量的错误而中止的唯一原因是它window.history存在——它是保持窗口当前导航历史的对象。(所有全局变量都是 window 对象的属性,所以这就是你使用的history对象。)而且由于它是一个对象,[object]所以当你将它转移到字符串上下文时,你会得到什么结果(通过使用+,是加法和字符串连接运算符)。

除此之外,将所有代码写入onclick处理程序是一种糟糕的风格。接下来去学习如何使用适当的函数来处理这样的事情;-)

于 2014-02-28T00:21:40.950 回答