JavaScript错误(未捕获的SyntaxError:意外的输入结束)

192 javascript syntax jquery indentation syntax-error

我有一些JavaScript代码可以在FireFox中运行,但不适用于Chrome或IE.

在Chrome JS控制台中,我收到以下错误:

"Uncaught SyntaxError:意外的输入结束".

我使用的JavaScript代码是:

<script>
 $(function() {
 $("#mewlyDiagnosed").hover(function() {
    $("#mewlyDiagnosed").animate({'height': '237px', 'top': "-75px"});
 }, function() {
    $("#mewlyDiagnosed").animate({'height': '162px', 'top': "0px"});
 });
</script>
Run Code Online (Sandbox Code Playgroud)

它说错误是在最后一行 });

SLa*_*aks 378

添加一秒});.

正确缩进后,您的代码会读取

$(function() {
    $("#mewlyDiagnosed").hover(function() {
        $("#mewlyDiagnosed").animate({'height': '237px', 'top': "-75px"});
    }, function() {
        $("#mewlyDiagnosed").animate({'height': '162px', 'top': "0px"});
    });
MISSING!
Run Code Online (Sandbox Code Playgroud)

你永远不会关闭外围$(function() {.

  • 教训是,**总是缩进你的代码**(并正确缩进). (261认同)
  • 经验教训是,总是使用具有良好插件的优秀编辑器,它可以检测括号配对,突出显示甚至修复问题. (4认同)
  • 哦,伙计,我希望我的VIM发现了语法错误.我无法相信有时会因粗心的语法错误而浪费多少时间. (2认同)
  • @HeyWatchThis 你可以尝试 Vim 的 Syntastic。 (2认同)
  • 我将 neomake 用于 vim/neovim,配置为每次保存 JavaScript 文件时运行 jshint。如果我有语法错误,我会在 vim/neovim 的装订线中看到警告/错误符号。当我将光标放在该行上时,vim/neovim 命令行将显示一条消息,说明错误是什么。 (2认同)

fal*_*lla 88

在我的例子中,我试图解析一个空的JSON:

JSON.parse(stringifiedJSON);
Run Code Online (Sandbox Code Playgroud)

换句话说,发生的事情如下:

JSON.parse("");
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,这包括jquery 1.11.2的`$ .parseJSON` (3认同)

Hug*_*ugo 37

http://jsbeautifier.org/有助于缩进缩小的JS代码.

此外,使用Google Chrome,您可以使用"漂亮的打印".请参阅下面的示例屏幕截图,显示jquery.min.jsStack Overflow从我的浏览器中很好地缩进:)

在此输入图像描述


hvg*_*des 14

稍微格式化代码,您只关闭了内部悬停功能.你没有关闭外面的部分,标记如下....

$(// missing closing)
 function() { // missing closing }
     $("#mewlyDiagnosed").hover(
        function() {
            $("#mewlyDiagnosed").animate({'height': '237px', 'top': "-75px"});
        }, 
        function() {
            $("#mewlyDiagnosed").animate({'height': '162px', 'top': "0px"});
        });
Run Code Online (Sandbox Code Playgroud)


Sam*_*Sam 6

对我来说,它是由一个缺失导致(0)javascript:void(0)在一个锚。

  • 同样的问题:但是,我有 `javascript:void(0` 缺少一个 `)` (2认同)

Yëc*_*ëco 5

在我的情况下,它最终成为我的书签中的一个简单的双引号问题,请记住只在bookmarklet上使用单引号.以防这有助于某人.


Jim*_*bor 5

此错误主要是由于在尝试解析空 JSON 时返回空的 ajax 调用造成的。

如果返回的数据为空,则解决此测试

$.ajax({
    url: url,
    type: "get",
    dataType: "json",
    success: function (response) {

        if(response.data.length == 0){
            // EMPTY
        }else{
            var obj =jQuery.parseJSON(response.data);
            console.log(obj);
        }
    }
});
Run Code Online (Sandbox Code Playgroud)