最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

HTMLJavascript Grade Average Calculation - Stack Overflow

programmeradmin4浏览0评论

I am currently writing a program in HTML/JavaScript and have been fighting it for several days with hours of research and studying without resolution. My program/site has a table that asks the user to enter their grades for 4 different categories. Then upon clicking the button to calculate the average it is supposed to take those 4 values, and then average them with the correct weighting, and then display the output in a new page division. I am not able to get the output to display and I can't figure out why.

I apologize if this is dead simple and has been answered before.

function calculator() {
  var grade1 = parseFloat(document.getElementById('homework').value * 0.25);
  var grade2 = parseFloat(document.getElementById('labs').value * 0.20);
  var grade3 = parseFloat(document.getElementById('midterm').value * 0.25);
  var grade4 = parseFloat(document.getElementById('finals').value * 0.30);
  var total = grade1 + grade2 + grade3 + grade4;

  var display = document.getElementById('outputDiv')
  display.innerHTML = 'Your Final Grade Is: ';
}
<p>
  <h2>Grade Average Calculator</h2>
  <h3>Please Enter Your Grade For Each Section</h3>
  <TABLE BORDER=2 CELLSPACING=2 CELLPADDING=2>

    <tr>
      <td>Type</td>
      <td>Weight</td>
      <td>Grade</td>
    </tr>

    <tr>
      <td>Homework</td>
      <td>25%</td>
      <td><input type="text" id="homework" size=2 value=""></td>
    </tr>

    <tr>
      <td>Labs</td>
      <td>20%</td>
      <td><input type="text" id="labs" size=2 value=""></td>
    </tr>

    <tr>
      <td>Midterm</td>
      <td>25%</td>
      <td><input type="text" id="midterm" size=2 value=""></td>
    </tr>

    <tr>
      <td>Final Exam</td>
      <td>30%</td>
      <td><input type="text" id="finals" size=2 value=""></td>
    </tr>

    <br><br>
</p>
<input type="button" value="Calculate Your Grade" onclick="calculator()">

<hr>
<div id="outputDiv" style="height: 50px; width: 100%;"></div>

I am currently writing a program in HTML/JavaScript and have been fighting it for several days with hours of research and studying without resolution. My program/site has a table that asks the user to enter their grades for 4 different categories. Then upon clicking the button to calculate the average it is supposed to take those 4 values, and then average them with the correct weighting, and then display the output in a new page division. I am not able to get the output to display and I can't figure out why.

I apologize if this is dead simple and has been answered before.

function calculator() {
  var grade1 = parseFloat(document.getElementById('homework').value * 0.25);
  var grade2 = parseFloat(document.getElementById('labs').value * 0.20);
  var grade3 = parseFloat(document.getElementById('midterm').value * 0.25);
  var grade4 = parseFloat(document.getElementById('finals').value * 0.30);
  var total = grade1 + grade2 + grade3 + grade4;

  var display = document.getElementById('outputDiv')
  display.innerHTML = 'Your Final Grade Is: ';
}
<p>
  <h2>Grade Average Calculator</h2>
  <h3>Please Enter Your Grade For Each Section</h3>
  <TABLE BORDER=2 CELLSPACING=2 CELLPADDING=2>

    <tr>
      <td>Type</td>
      <td>Weight</td>
      <td>Grade</td>
    </tr>

    <tr>
      <td>Homework</td>
      <td>25%</td>
      <td><input type="text" id="homework" size=2 value=""></td>
    </tr>

    <tr>
      <td>Labs</td>
      <td>20%</td>
      <td><input type="text" id="labs" size=2 value=""></td>
    </tr>

    <tr>
      <td>Midterm</td>
      <td>25%</td>
      <td><input type="text" id="midterm" size=2 value=""></td>
    </tr>

    <tr>
      <td>Final Exam</td>
      <td>30%</td>
      <td><input type="text" id="finals" size=2 value=""></td>
    </tr>

    <br><br>
</p>
<input type="button" value="Calculate Your Grade" onclick="calculator()">

<hr>
<div id="outputDiv" style="height: 50px; width: 100%;"></div>

Share Improve this question edited Jun 5, 2022 at 22:39 Lee Taylor 7,98416 gold badges37 silver badges53 bronze badges asked Sep 8, 2016 at 18:04 DarkenvarDarkenvar 31 gold badge1 silver badge4 bronze badges 1
  • 1 Use var display=document.getElementById('outputDiv').display.innerHTML='Your Final Grade Is: '+total; – Ankush soni Commented Sep 8, 2016 at 18:17
Add a ment  | 

1 Answer 1

Reset to default 1

I updated your code to work. The issue being you never displayed the total, you just displayed

'Your final Grade Is: '

<html>
<head>
    <title> Grade Average Calculator </title>
</head>

<body>

<p>
    <h2>Grade Average Calculator</h2>
    <h3>Please Enter Your Grade For Each Section</h3>
    <TABLE BORDER=2 CELLSPACING=2 CELLPADDING=2>

    <tr>
    <td>Type</td>
    <td>Weight</td>
    <td>Grade</td>
    </tr>

    <tr>
    <td>Homework</td>
    <td>25%</td>
    <td><input type="text" id="homework" size=2 value=""></td>
    </tr>

    <tr>
    <td>Labs</td>
    <td>20%</td>
    <td><input type="text" id="labs" size=2 value=""></td>
    </tr>

    <tr>
    <td>Midterm</td>
    <td>25%</td>
    <td><input type="text" id="midterm" size=2 value=""></td>
    </tr>

    <tr>
    <td>Final Exam</td>
    <td>30%</td>
    <td><input type="text" id="finals" size=2 value=""></td>
    </tr>

    <br><br>
</p>
    <input type="button" value="Calculate Your Grade"
        onclick="calculator()">

    <hr>
    <div id="outputDiv" style="height: 50px; width: 100%;"></div>

    <script type="text/javascript">

        function calculator()
        {
            var grade1=parseFloat(document.getElementById('homework').value*0.25);
            var grade2=parseFloat(document.getElementById('labs').value*0.20);
            var grade3=parseFloat(document.getElementById('midterm').value*0.25);
            var grade4=parseFloat(document.getElementById('finals').value*0.30);
            var total=grade1+grade2+grade3+grade4;

            var display=document.getElementById('outputDiv');

            display.innerHTML='Your Final Grade Is: ' +total;
        }
    </script>
发布评论

评论列表(0)

  1. 暂无评论