1 votes

JavaScript ne fonctionne pas

Mon codage pour JavaScript ne fonctionne pas et je n'arrive pas à comprendre pourquoi. Quelqu'un peut-il y jeter un coup d'œil et me dire ce que je néglige ?

C'est pour mon devoir JavaScript le lien ci-dessous est le devoir. Chaque fois que j'ai essayé d'exécuter le codage, une page blanche s'est affichée. Mais je n'arrive pas à voir où se trouve mon ou mes erreurs. Tout ce dont j'ai besoin, c'est que quelqu'un lise rapidement le code et me dise ce que je peux faire pour qu'il fonctionne.

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>

2voto

cjk Points 27463

classnm ne prend jamais une valeur autre que 0...

2voto

Phil Ross Points 10227

J'ai exécuté votre code dans Firefox avec le Firebug installée. Il a signalé l'erreur suivante.

class\[classCtr\] is undefined on Line 34

La ligne 34 est la suivante :

totalvalue = totalvalue + parseFloat(class[classCtr][2]);

Cette erreur se produit parce que vous incrémentez classCtr sur la ligne précédente, donc l'appel à class[classCtr] tente d'accéder à quelque chose qui n'a pas encore été défini.

También, classCtr n'est pas affecté à une valeur initiale, et aura donc la valeur unassigned . Le premier ensemble de valeurs sera donc stocké dans le fichier classCtr[undefined] .

Vous aurez besoin d'initialiser classCtr lorsqu'elle est déclarée, puis l'incrémenter après avoir fini de traiter chaque classe.

2voto

Manny Points 3335

Class est un mot réservé de javascript, renommez tous les "class" en quelque chose d'autre. Par exemple, "myClass".

Renommer "class" devrait faire fonctionner votre code, mais je vois encore beaucoup d'erreurs minimes dans votre code comme la balise "head" non fermée, l'utilisation de variables non initialisées, etc. Je vous suggère de le revoir en profondeur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X