2016-07-28 42 views
0

Mein Javascript scheint in Ordnung zu sein (.prompt() und alles, sogar der Anfang einer verschachtelten if/else-Anweisung) und doch, wenn ich mein Javascript validiere, heißt es "Erwartetes Semikolon vor Anweisung" für die allererste Eingabeaufforderung.Eingabeaufforderungsmethode funktioniert nicht?

Ich sehe nicht, wie mein Code falsch ist. Ich habe versucht, ein Gleichheitszeichen vor der Aufforderung zu verwenden, um die Variablen zu definieren, weil ich dachte, dass wenn ich das nicht tun würde, meine Variablen undefiniert wären. Ich kann nicht mit Sicherheit sagen, wie viele Variablen ich haben werde, deshalb kann ich meine Liste der Variablen nicht einfach im Voraus erklären. Dies ist mit meinem Charakter Persönlichkeitstest.

Hier ist der Code. Die Geschlechtsvariable soll nur 2 Antworten annehmen, männlich und weiblich. Die Variable childsh soll jede Zahl zwischen 0 und 12 annehmen (12 ist das Maximum pro Schwangerschaft für meine Charaktere). Dies ist, wo ein Array in praktisch oder einem Äquivalent kommen könnte, weil dann könnte ich Fällen müssen mehr .Prompt führenden() Aussagen (im Wesentlichen das Äquivalent von 12 if/else-Anweisungen)

function Character() { 
 
    var gender.prompt("What is your gender?"); 
 
    if (gender = "Female") { 
 

 
    var children_h.prompt("Have you had any children recently?"); 
 
    if (children_h = "0") { 
 
     var pregnant.prompt("Are you pregnant?"); 
 
     if (pregnant = "Yes") { 
 
     var pregnant_m.prompt("Is it a multiple pregnancy?"); 
 
     if (pregnant_m = "Yes") { 
 
      var pregnant_t.prompt("How far are you in your pregnancy(trimester)?"); 
 
      if (pregnant_t = "1") { 
 
      alert("Expect to feel like you are sick"); 
 
      }; 
 
      else if (pregnant_t = "2") { 
 
      alert("You might feel some movements"); 
 
      }; 
 
      else if (pregnant_t = "3") { 
 
      alert("You might feel pain before labor.") 
 
      }; 
 
      else { 
 
      alert("Your baby is more than ready. Don't be surprised if you go into labor.") 
 
      }; 
 
     }; 
 
     }; 
 
    }; 
 
    else if (children_h = "1") { 
 
     var children_a.prompt("How old is your child?") 
 
    }; 
 
    else if (children_h = "2") { 
 
     var chilren_m.prompt("Were they twins or not?") 
 
    }; 
 
    else if (children_h = "3") { 
 
     children_m.prompt("Were they twins or triplets?") 
 
    }; 
 
    else if (children_h = "4") { 
 
     children_m.prompt("Were they multiples?") 
 
    }; 
 
    else if (children_h = "5") { 
 
     children_m.prompt("Were they multiples?") 
 
    }; 
 
    else if (children_h = "6") { 
 
     children_m.prompt("Were they multiples?") 
 
    }; 
 
    else if (children_h = "7") { 
 
     children_m.prompt("Were they multiples?") 
 
    }; 
 
    else if (children_h = "8") { 
 
     children_m.prompt("Were they multiples?") 
 
    }; 
 
    else if (children_h = "9") { 
 
     children_m.prompt("Were they multiples?") 
 
    }; 
 
    else if (children_h = "10") { 
 
     children_m.prompt("Were they multiples?") 
 
    }; 
 
    else if (children_h = "11") { 
 
     children_m.prompt("Were they multiples?") 
 
    }; 
 
    else if (children_h = "12") { 
 
     children_m.prompt("Were they multiples?") 
 
    }; 
 
    else { 
 
     alert("Impossible!") 
 
    }; 
 
    }; 
 
    else if (gender = "Male") { 
 
    childrenh.prompt("Have you had any children recently?"); 
 
    }; 
 
    else { 
 
    alert("Undefined gender!") 
 
    }; 
 
};
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <link rel='stylesheet' href='style.css' /> 
 
    <script src='script.js'></script> 
 
</head> 
 

 
<body> 
 
    <p>Take the personality test to find out your character's personality</p> 
 
    <button onclick="Character">Test</button> 
 
</body> 
 

 
</html>

Warum bekomme ich einen Syntaxfehler mit meinen Variablen? Ich deklariere diese Variablen in den gleichen Zeilen, in denen ich meine prompten Anweisungen deklariere.

EDIT:

bearbeiten ich den Code mehr enthalten if/else-Anweisungen und eine globale Funktion auf die HTML über die Schaltfläche Tag verbinden. Es funktioniert immer noch nicht (Character ist nicht definiert, wenn Sie auf die Schaltfläche klicken (obwohl ich die Funktion als all diese If/Else Geschäft definiert haben und es mit dem gleichen Namen in den HTML-Code einfügen) und erwartet; kommt up, wenn das Programm startet (Was ich nicht verstehe, was mit dieser speziellen if-Anweisung falsch ist)). Ich habe noch keinen CSS-Code.

Ich benutze Codecademy für dieses und es hat externe CSS und JS für alle ihre Codebits eingebaut (deshalb ist das Skript-Tag in der Kopfzeile, weil mit ihm dort, sollte es auf das externe Javascript verweisen, wann immer es ist aufgerufen (wie in diesem Knopf, der zu all diesen Aufforderungen und mehr führen sollte, wenn ich damit fertig bin)).

Antwort

1

Wechsel von

var gender.prompt("What is your gender?"); 
if(gender = "Female"){ 

    var childrenh.prompt("Have you had any children recently"); 
}; 

zu

var gender = prompt("What is your gender?"); 
if(gender === "Female"){   
    var children = prompt("Have you had any children recently"); 
}; 
+0

Aber ich versuchte, und ich all diese „nicht angemeldeten prompt() Anweisung“ Fehler. Es ist wie von einem Fehler zum nächsten zu gehen. Zuerst ist die Variable nicht definiert und dann, wenn ich sie definiere, ist die Anweisung prompt() nicht deklariert. – Caters

+0

Sie haben die Änderung "." zu "=" – user86745458

+0

10 Ändern Sie beispielsweise var pregnant.prompt ("Sind Sie schwanger?"); zu var schwanger = prompt ("Bist du schwanger?"); – user86745458