SyntaxError:期望的表达式,得到'<&#;;这是什么意思?

时间:2015-08-10 18:12:36

标签: javascript html button external

我知道有几次在S.O。

上被问过

但没有一个答案似乎符合我的情况。所以,我有一个基本的Html页面,试图使用外部JS。 JS文件尝试在单击按钮时更改HTML中定义的段落的内容,但似乎不起作用。

我在控制台中看到以下错误:

1)SyntaxError:期望表达式,得到'<'

2)ReferenceError:未定义更改

JSFiddle显示确切的来源?(除了&标签被删除为jsfiddle - http://jsfiddle.net/p9ko4yde/

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>

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>

文件结构如下:enter image description here

4 个答案:

答案 0 :(得分:19)

在外部.js文件中,您不需要<script>标记。使用这些标记仅在HTML中嵌入脚本。

答案 1 :(得分:3)

语法错误是因为您的JS文件中有<script>个标记。当你把JavaScript放在自己的文件中时,你不需要用脚本标签包围它;那个HTML,这是一个JavaScript文件。

发生引用错误是因为由于语法错误,JS文件没有正确执行,所以更改函数永远不会被创建 - 修复语法错误也应该解决这个问题。

答案 2 :(得分:2)

在js文件中,您不使用HTML声明它是js文件。因此,您可以在myScript中删除脚本标记并将其更改为:

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

答案 3 :(得分:0)

有时,当Javascript引用的文件不存在时会发生此错误。确保文件名正确并且您已准备好文件。我知道你的问题已经解决,但也许这个答案解决了别人的问题:)