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.
加载中,请稍侯......
精彩评论