web-dev-qa-db-fra.com

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

Je sais que cela est demandé à quelques reprises sur S.O.

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

Je vois les erreurs suivantes dans la console:

1) SyntaxError: expression attendue, notée '<'

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

JSFiddle indiquant la source exacte? (Sauf que les balises & sont supprimées sous 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 de fichier est comme ci-dessous:  enter image description here

10
nikel

Vous n'avez pas besoin des balises <script> dans un fichier .js externe. Utilisez ces balises pour incorporer un script dans HTML uniquement.

18
Simon Robb

L'erreur de syntaxe est due au fait que vous avez des balises <script> dans votre fichier JS. Lorsque vous mettez JavaScript dans son propre fichier, vous n'avez pas besoin de l'entourer de balises de script. c'est du HTML, et c'est un fichier JavaScript.

L'erreur de référence se produit car, à cause de l'erreur de syntaxe, le fichier JS ne s'exécute pas correctement et la fonction de modification n'a donc jamais été créée. La résolution de l'erreur de syntaxe devrait également résoudre le problème.

3
Hayden Schiff

Dans un fichier js, vous n'utilisez pas le code HTML pour déclarer qu'il s'agit d'un fichier js. Vous pouvez donc supprimer la balise script dans myScript et la modifier comme suit:

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

Parfois, cette erreur se produit lorsque le fichier Javascript référencé n'existe pas . Assurez-vous que le nom du fichier est correct et que le fichier est en place. Je sais que votre problème est résolu, mais peut-être que cette réponse résoudra celle de quelqu'un d'autre :)

0
Aproram