开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜