SyntaxError: expression attendue, obtenu '<', qu'est-ce que cela signifie?

Je sais que cela est demandé à plusieurs reprises sur SO

Mais aucune des réponses ne correspond à ma situation. Donc, j'ai une page Html basique qui essaie d'utiliser un JS externe. Le fichier JS tente de modifier le contenu d'un paragraphe défini dans le HTML sur un clic de bouton, mais ne semble pas fonctionner.

Je vois les erreurs suivantes dans la console:

1) SyntaxError: expression attendue, obtenu '<'

2) ReferenceError: le changement n'est pas défini

JSFiddle montrant la source exacte? (Sauf que & tags sont supprimés en tant que jsfiddle – http://jsfiddle.net/p9ko4yde/

Code HTML:

<h1> Numbers with external script:) </h1> <p id="number">1</p> <button type="button" onclick="change()">Toggle between 1 and 2</button> <script src="myScript.js"></script> </body> </html> 

Code JS:

 <script type="text/javascript"> function change(){ var number = document.getElementById('number').innerHTML; if(number == '1'){ document.getElementById('number').innerHTML='2'; } else{ document.getElementById('number').innerHTML='1'; } } </script> 

La structure du fichier est comme suit: Entrez la description de l'image ici

Vous n'avez pas besoin des balises <script> dans un fichier .js externe. Utilisez ces balises pour intégrer un script à l'intérieur de HTML uniquement.

L'erreur de syntaxe est due à la <script> balises <script> dans votre fichier JS. Lorsque vous mettez JavaScript dans son propre fichier comme celui-ci, vous n'avez pas besoin de l'entourer de balises de script; C'est le HTML, et c'est un fichier JavaScript.

L'erreur de référence se produit parce que, en raison de l'erreur de syntaxe, le fichier JS ne s'exécute pas correctement et la fonction de modification n'a jamais été créée – la correction de l'erreur de syntaxe devrait également résoudre ceci.

Dans un fichier js, vous n'utilisez pas le HTML pour déclarer qu'il s'agit d'un fichier js. Ainsi, vous pouvez supprimer la balise de script dans myScript et la modifier à ceci:

 function change(){ var number = document.getElementById('number').innerHTML; if(number == '1'){ document.getElementById('number').innerHTML='2'; } else{ document.getElementById('number').innerHTML='1'; } }