我有一些JavaScript代码,工作在FireFox,但不是在Chrome或IE。

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

“未捕获的语法错误:输入的意外结束”。

我使用的JavaScript代码是:

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

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


当前回答

在我的情况下,我试图解析一个空JSON:

JSON.parse(stringifiedJSON);

换句话说,事情是这样的:

JSON.parse("");

其他回答

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

此外,与谷歌Chrome浏览器,你可以使用“漂亮的打印”。请看下面的示例截图,从我的浏览器中很好地缩进了Stack Overflow中的jquery.min.js:)

添加第二个});

当正确缩进时,代码可以读取

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

你从来没有关闭外层的$(函数(){。

当试图解析一个空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);
        }
    }
});

我还得到了这个错误指向一个页面上的最后一个脚本块的结束,才意识到这个错误实际上是从点击一个onclick=“pagename”的元素,而不是onclick=“window.location='pagename'”。它并不总是缺少一个括号!

稍微格式化一下你的代码,你只关闭了内部的hover函数。你没有关闭外部部分,标记如下:

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