在完全正确的参数列表后出现未捕获的语法错误:缺少)。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在完全正确的参数列表后出现未捕获的语法错误:缺少)。相关的知识,希望对你有一定的参考价值。

我是用javascript发送一个Ajax请求,用返回的数据创建一个 "a "标签,标签上有一个onclick事件,这个事件调用另一个方法,有一个参数。这就是代码的植入。

function loadHistory() {
        var detailsForGet = {
        userId: sessionStorage.getItem("userName")
    }
    $.ajax({
        type: "GET",
        url: "https://localhost:44326/User/getTwitterSearchHistory",
        data: detailsForGet,
        success: function (data) {
            jQuery.each(data, function (index, item) {
                console.log(item)
                $('<a href="#" onclick="historySearch(' + item + ')">' + item + '</a><br/>').appendTo('#forHistory');
            });
        }
    });
}

function historySearch(text) {
    console.log(text)
    document.getElementById('tweetSearching').innerhtml = "Searching...";
    $.getJSON("https://localhost:44326/api/Twitter/GetSearchResults?searchString=" + text)
        .done(function (data) {
            if (data.length == 0) {
                document.getElementById('tweetSearching').innerHTML = "No matches Found!";
            }
            else {
                document.getElementById('tweetSearching').innerHTML = "Found " + data.length + " matches!";
                console.log(data)
                document.getElementById('searchResults').innerHTML = "";
                $('<h3 style="text-align:center; color: white">Search Results</h3> <hr/>').appendTo('#searchResults');
                $.each(data, function (key, item) {
                    $('<ul style="list-style:none;"><li><span style="font-weight: bold; color: white;">Post </span><span style="color: white;">' + item.FullText + '</span><br/><span style="font-weight: bold; color: white;">Uploader</span><span style="color: white;"> ' + item.CreatedBy.Name + " @" + item.CreatedBy.ScreenName + '</span><br/><span style="font-weight: bold; color: white;">Date</span><span style="color: white;"> ' + formatDateTwitter(item.CreatedAt) + '</span><li/><hr/></ul>').appendTo('#searchResults');
                });

            }
        });
}

现在,当我试图按下 "a "标签时,我得到了错误信息

在参数列表后出现未捕获的语法错误:缺少)。

现在,我注意到,只有当我在onclick函数中调用一个带参数的方法时,才会发生这种情况,因为,之前我试图调用一个没有参数的函数,它就会进入其中。但是,当我试图传递一个参数时,它就会返回那个错误。

我是不是在这里没有看到什么?

答案

如果你的 item 是一个字符串,你需要在你的onclick JavaScript中用引号将该值括起来。由于你已经使用单引号来构建你的HTML字符串,你可以添加单引号编码为 x27.

$('<a href="#" onclick="historySearch(x27' + item + 'x27)">' + item + '</a><br/>').appendTo('#forHistory');

另请参阅。JavaScript中的转义引号

以上是关于在完全正确的参数列表后出现未捕获的语法错误:缺少)。的主要内容,如果未能解决你的问题,请参考以下文章

部署Django+React到Heroku - 未捕获的语法错误。意外的标记'<'

登录后立即缺少权限错误消息

未捕获的语法错误:Bootstrap.esm.min.js:6

未捕获的语法错误:请求的模块未提供名为的导出

未捕获的语法错误。在<input id={{供应商.id }}中出现无效或意外的标记。

未捕获的类型错误:无法读取未定义的属性 XXX