Ich weiß, das ist ein paar Mal auf S.O.
aber keine der Antworten scheint meiner Situation zu entsprechen. Ich habe also eine einfache HTML-Seite, die versucht, eine externe JS zu verwenden. Die JS-Datei versucht, den Inhalt eines Absatzes, der im HTML-Code definiert ist, durch Klicken auf eine Schaltfläche zu ändern, scheint jedoch nicht zu funktionieren.
Ich sehe die folgenden Fehler in der Konsole:
1) SyntaxError: erwarteter Ausdruck, erhielt '<'
2) ReferenceError: Änderung ist nicht definiert
JSFiddle zeigt genaue Quelle an (außer dass & Tags als jsfiddle entfernt werden - http://jsfiddle.net/p9ko4yde/
HTML Quelltext :
<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>
JS-Code:
<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>
Sie brauchen die <script>
-Tags nicht, wenn Sie sich in einer externen .js-Datei befinden. Verwenden Sie diese Tags, um ein Skript nur in HTML einzubetten.
Der Syntaxfehler liegt darin, dass Sie <script>
-Tags in Ihrer JS-Datei haben. Wenn Sie JavaScript in eine eigene Datei einfügen, müssen Sie es nicht mit Skript-Tags umgeben. Das ist HTML und dies ist eine JavaScript-Datei.
Der Referenzfehler tritt auf, weil aufgrund des Syntaxfehlers die JS-Datei nicht ordnungsgemäß ausgeführt wird und die Änderungsfunktion nie erstellt wurde. Das Beheben des Syntaxfehlers sollte dies ebenfalls beheben.
In einer js-Datei verwenden Sie das HTML nicht, um anzugeben, dass es sich um eine js-Datei handelt. Sie können das Skript-Tag also in myScript ablegen und wie folgt ändern:
function change(){
var number = document.getElementById('number').innerHTML;
if(number == '1'){
document.getElementById('number').innerHTML='2';
}
else{
document.getElementById('number').innerHTML='1';
}
}
Manchmal tritt dieser Fehler auf, wenn die Javascript-referenzierteDatei nicht existiert . Stellen Sie sicher, dass der Dateiname korrekt ist und Sie die Datei installiert haben. Ich weiß, dass dein Problem gelöst ist, aber vielleicht löst diese Antwort jemand anderes :)