JavaScript is not working
My coding for J开发者_StackOverflowavaScript is not working and I can't figure out why. Can someone look it over and tell me what I am overlooking?
This is for my JavaScript assignment the link below is the assignment. Every time I have attempted to run the coding, it opens up to a blank page. But I can't see where my error(s) are. All I need is for someone to quickly read it and tell me what I can do to make it function.
https://docs.google.com/fileview?id=16uNNiooLalkm1QlszrqEPr2qqMGLjhrtQx7qCLw-7d2ftygre8GM6hyceJHj&hl=en
<html>
<head>
<body>
<script language="JavaScript">
<!--
var classCtr;
var nmAnswer;
var clsGrade;
var totalvalue;
var gpatotalvalue;
gpatotalvalue = 0;
totalvalue = 0;
// set up one dimensional array
var class = new Array();
classnm = 0;
do
{
// start columns in second dimension of the array
class[classCtr] = new Array();
// get values from user and put in array
class[classCtr][0] = prompt ("Enter Class Name");
class[classCtr][1] = prompt ("Enter grade recieved");
class[classCtr][2] = {"A":4,"B":3,"C":2,"D":1,"F":0}[class[classCtr][1]];
class[classCtr][3] = prompt ("Enter credit hours")
// accumulate the total value
totalvalue = totalvalue + parseFloat(class[classCtr][3]);
// add one to the total number of cars
classCtr++;
totalvalue = totalvalue + parseFloat(class[classCtr][2]);
nmAnswer = prompt ("Do you have more classes");
} while (nmAnswer == "yes");
// set variable that is used as counter
clsGrade = 0;
// print out header for content
document.write("<H2 align='center'>Grade Point Average</H2><br>");
document.write("<table bgcolor='Grey' align='center' border='1' cellpadding='4' width='75%'>");
document.write("<tr>");
document.write("<td>Class Name</td><td align='center'>Class Grade</td><td align='center'>Grade Credit</td>");
document.write("</tr>");
// Loop through array displaying html and javascript values in the array
while (clsGrade < classnm)
{
document.write("<tr>");
document.write("<td>");
document.write (class[classCtr][0]);
document.write("</td>");
document.write("<td align='center'>");
document.write (class[classCtr][1]);
document.write("</td>");
document.write("<td align='center'>");
document.write (class[classCtr][3]);
document.write("</td>");
document.write("</tr>");
document.write("</td>");
// increment the counter
clsGrade++;
}
// finish the table of data and display the total value
document.write("</Table>");
document.write("<br>");
document.write("<table bgcolor='grey' align='center' border='1' cellpadding='4' width='75%'>");
document.write("<tr>");
document.write("<td>Total value</td><td align='center'>" + totalvalue + "</td>");
document.write("</tr>");
document.write("<tr>");
document.write("<td>GPA</td><td align='center'>" + gpatotalvalue + "</td>");
document.write("</tr>");
document.write("</Table>");
//-->
</script>
</font></body>
</html>
classnm
is never set to anything other than 0...
class is a javascript reserved word, rename all "class" to something else. E.g. "myClass"
Renaming "class" should make your code work, but I still see many minimal errors in your code like unclosed "head" tag, use of uninitialized variable, etc. Suggest you review it thoroughly.
I ran your code in Firefox with the Firebug extension installed. It reported the following error.
class[classCtr] is undefined on Line 34
Line 34 is the following:
totalvalue = totalvalue + parseFloat(class[classCtr][2]);
This error is occurring because you increment classCtr
on the previous line, so the call to class[classCtr]
attempts to access something that hasn't yet been defined.
Also, classCtr
isn't assigned an initial value, so will have the value unassigned
. The first set of values will therefore be stored in classCtr[undefined]
.
You'll need to initialize classCtr
when it is declared and then increment it after you've finished handling each class.
精彩评论