原因不明的JavaScript行为 - 错误?

时间:2012-09-03 19:14:18

标签: javascript jquery asp.net razor asp.net-mvc-4

如果我将其复制并粘贴到我的网页中:

<script>
    $(function(){
        $("#startDate").datepicker();
    });​​​
</script>

我在浏览器中收到此错误:

Uncaught SyntaxError: Unexpected token ILLEGAL

然而,使用完全相同的代码,如果我只是删除最后的分号并再次添加它,代码将在VS 2012中格式化,然后它就可以了。为什么?我不认为间距与JavaScript有关系吗?

如果我粘贴相同的代码并自己添加间距,它仍然无效。我必须手动输入,或删除并再次添加分号。这可能是个错误吗?我错过了一些基本的东西吗?

这是页面中的整个代码:

@{
    Layout = null;
}

    <!DOCTYPE html>

    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
        <script src="~/Scripts/jquery-1.7.1.min.js"></script>
        <script src="~/Scripts/jquery-ui-1.8.20.min.js"></script>
        <script>
            $(function(){
                $("#startDate").datepicker();
            });​​​
        </script>
    </head>
    <body>
        <div>
            <h2>Home View</h2>
            <input type="text" id="startDate">
        </div>
    </body>
    </html>

只是要完整,这是有效的代码:

<script>
    $(function () {
        $("#startDate").datepicker();
    });
</script>

除了间距之外,我没有看到差异。就像我说的那样,我可以使用精确代码和间距,除非我删除并添加分号,否则它会失败。

2 个答案:

答案 0 :(得分:1)

查看浏览器中的代码 - 点击查看源代码 - 并仔细检查您的IDE是否没有添加一些破坏javascript的额外代码。

Chrome中的Ctrl-U以查看来源。

答案 1 :(得分:1)

分号后面有一些需要清理的垃圾字符。

如果我将SO中的确切文本粘贴到Wordpad ++中,那么它会显示:

<script>
    $(function(){
        $("#startDate").datepicker();
    });???
</script>

其中显示了一些非法字符。