2017-08-05 1 views
-1

Je suis débutant en JavaScript et je travaille actuellement sur une tâche où je dois créer un jeu où vous devez cliquer sur le visage supplémentaire sur le côté gauche, en utilisant JavaScript. Je reçois toujours "Uncaught SyntaxError: Jeton invalide ou inattendu" Toute aide serait grandement appréciée! Voici mon code:Uncaught SyntaxError: Jeton invalide ou inattendu, Assignation de jeu assortie

<html> 
 
\t \t <head> 
 
\t \t \t <style> 
 
\t \t \t \t img { 
 
\t \t \t \t \t position: absolute; 
 
\t \t \t \t } 
 
\t \t \t \t div { 
 
\t \t \t \t \t position: absolute; 
 
\t \t \t \t \t width: 500px; 
 
\t \t \t \t \t height: 500px; 
 
\t \t \t \t } 
 
\t \t \t \t #rightSide { 
 
\t \t \t \t \t left: 500px; 
 
\t \t \t \t \t border-left: 1px solid black; 
 
\t \t \t \t } 
 
\t \t \t </style> 
 
\t \t </head> 
 
\t \t <body onload = "generateFaces()"> 
 
\t \t \t <h1>Matching Game</h1> 
 
\t \t \t <p>Click on the extra smiling face on the left.</p> 
 
\t \t \t <div id="leftSide"></div> 
 
\t \t \t <div id="rightSide"></div> 
 
\t \t \t <script> 
 
\t \t \t \t var numberOfFaces = 5; 
 
\t \t \t \t var count = 0; 
 
\t \t \t \t var theLeftSide = document.getElementById("leftSide"); 
 
\t \t \t \t var theRightSide = document.getElementById("rightSide"); 
 
\t \t \t \t var theBody = document.getElementsByTagName("body")[0]; 
 
\t \t \t \t function generateFaces() { 
 
\t \t \t \t \t while (count < numberOfFaces) { 
 
\t \t \t \t \t \t newImage = document.createElement("img"); 
 
\t \t \t \t \t \t newImage.src = "smile.png"; 
 
\t \t \t \t \t \t newImage.style.top = Math.random() * 400; 
 
\t \t \t \t \t \t newImage.style.left = Math.random() * 400; 
 
\t \t \t \t \t \t leftSide.appendChild(newImage); 
 
\t \t \t \t \t \t count++; 
 
\t \t \t \t \t } 
 
\t \t \t \t \t leftSideImages = leftSide.cloneNode(true); 
 
\t \t \t \t \t leftSideImages.removeChild(leftSideImages.lastChild); 
 
\t \t \t \t \t rightSide.appendChild(leftSideImages); 
 
\t \t \t \t } 
 
\t \t \t \t theLeftSide.lastChild.onclick = function nextLevel(event) { 
 
\t \t \t \t \t \t \t \t \t \t \t \t \t removeAllFaces(); 
 
\t \t \t \t \t \t \t \t \t \t \t \t \t event.stopPropagation(); 
 
\t \t \t \t \t \t \t \t \t \t \t \t \t numberOfFaces += 5; 
 
\t \t \t \t \t \t \t \t \t \t \t \t \t generateFaces(); 
 
\t \t \t \t \t \t \t \t \t \t \t \t \t } 
 
\t \t \t \t theBody.onclick = function gameOver() { 
 
\t \t \t \t \t \t \t \t \t alert("Game Over!"); 
 
\t \t \t \t \t \t \t \t \t theBody.onclick = null; 
 
\t \t \t \t \t \t \t \t \t theLeftSide.lastChild.onclick = null; 
 
\t \t \t \t \t \t \t \t \t } 
 
\t \t \t \t function removeAllFaces(argument){ 
 
\t \t \t \t \t while (theLeftSide.firstChild){ 
 
\t \t \t \t \t \t theLeftSide.removeChild(theLeftSide.firstChild); 
 
\t \t \t \t \t \t } 
 
\t \t \t \t \t while (theRightSide.firstChild){ 
 
\t \t \t \t \t \t theRightSide.removeChild(theRightSide.firstChild); 
 
\t \t \t \t \t \t } 
 
\t \t \t \t } 
 
\t \t \t \t 
 
\t \t \t </script> 
 
\t \t </body> 
 
\t </html>

+1

Quelle est précisément l'erreur? Sur quelle ligne cela se passe-t-il? – Carcigenicate

+0

partie 4.html: 55 Uncaught SyntaxError: Jeton non valide ou inattendu partie 4.html: 18 Uncaught ReferenceError: generateFaces n'est pas défini at onload (partie 4.html: 18) – Aktan

+0

N'utilisez pas de code en ligne ici. Débarrassez-vous de 'onload =" generateFaces() "', et placez à la place 'document.onload = generateFaces' dans l'élément de script. Iirc, vous ne pouvez pas utiliser de code dans un script avant que cet élément de script soit exécuté. – Carcigenicate

Répondre

2

Le problème est quelques-uns des points-virgules que vous utilisez ne sont pas des points-virgules standard. Si vous testez le code de caractère des points-virgules que vous utilisez:

console.log(';'.charCodeAt(0)) 

Vous trouverez qu'ils ont un code de caractère de 894, ce qui signifie qu'ils ne sont pas le type standard de points-virgules, qui ont un code de caractère 59. D'une manière ou d'une autre, vous avez introduit des points-virgules stylisés non standard dans votre code. Ceci est plus clair si vous regardez l'image ci-dessous:

Bad ";" semicolon Picture

Remarquez comment regarder les points-virgules ascendantes différentes de celles supérieures. L'utilisation de ces points-virgules stylisés provoque l'erreur de jeton non valide que vous obtenez.

Parcourez votre code et remplacez les points-virgules non standard par des points standard.

+0

function removeAllFaces (argument) {while (theLeftSide.firstChild) {..} – Coder

+0

Corrigez simplement votre point-virgule des lignes – Coder

+0

Regardez ma photo mise à jour. – Coder