32

我收到语法错误:

SyntaxError: missing ) after argument list

从这个jQuery代码:

$('#contentData').append(
  "<div class='media'><div class='media-body'><h4 class='media-heading'>" + 
  v.Name + "</h4><p>" + v.Description + "</p><a class='btn' href='" + 
  type + "'  onclick="(canLaunch('" + v.LibraryItemId + " '))">
  View &raquo;
  </a></div></div>")

什么样的错误会产生这个 Javascript 语法错误?

4

6 回答 6

32

"在 onclick 处理程序中有一个未转义的,用\"

$('#contentData').append("<div class='media'><div class='media-body'><h4 class='media-heading'>" + v.Name + "</h4><p>" + v.Description + "</p><a class='btn' href='" + type + "'  onclick=\"(canLaunch('" + v.LibraryItemId + " '))\">View &raquo;</a></div></div>")
于 2013-09-21T10:08:35.417 回答
11

如何重现此错误:

SyntaxError: missing ) after argument list

此代码产生错误:

<html>
<body>
<script type="text/javascript" src="jquery-2.1.0.min.js"></script>
<script type="text/javascript">
  $(document).ready(function(){

  }
</script>
</body>
</html>

如果你运行它并查看 firebug 中的错误输出,你会得到这个错误。传入“就绪”的空函数未关闭。像这样修复它:

<html>
<body>
<script type="text/javascript" src="jquery-2.1.0.min.js"></script>
<script type="text/javascript">
  $(document).ready(function(){

  });      //<-- notice the right parenthesis and semicolon
</script>
</body>
</html>

然后正确解释 Javascript。

于 2014-02-27T18:02:53.290 回答
7

对我来说,一旦函数拼写错误

例如,而不是

$(document).ready(function(){

});

我写

$(document).ready(funciton(){

});

所以也要检查一下

于 2017-02-20T06:30:14.783 回答
1

我昨天在下面的场景中遇到了同样的问题。但是我修复了它,如下所示。但是,如果有人可以向我解释为什么这个错误特别出现在我的案例中,那就太好了。

当我运行我的节点文件“app.js”时,在浏览器中出现错误的 index.ejs 文件的粘贴内容。它有一个重定向到“index.ejs”文件的路由“/blogs”。

<%= include partials/header %>
<h1>Index Page</h1>
<% blogs.forEach(function(blog){ %>
    <div>
        <h2><%= blog.title %></h2>
        <image src="<%= blog.image %>">
        <span><%= blog.created %></span>
        <p><%= blog.body %></p>
    </div>
<% }) %>
<%= include partials/footer %>

浏览器上出现的错误

SyntaxError: missing ) 在编译 ejs 时 /home/ubuntu/workspace/RESTful/RESTfulBlogApp/views/index.ejs 中的参数列表后

我如何修复它:我在顶部和底部的包含语句中删除了“=”,它工作正常。

于 2018-10-25T04:31:55.927 回答
1

SyntaxError: missing ) 在参数列表之后。

如果您在没有单引号或双引号的情况下直接传递字符串,也可能会出现此问题。

$('#contentData').append("<div class='media'><div class='media-body'><a class='btn' href='" + type + "'  onclick=\"(canLaunch(' + v.LibraryItemName +  '))\">View &raquo;</a></div></div>").

所以总是保持习惯传递一个报价,比如

 onclick=\"(canLaunch(\'' + v.LibraryItemName  + '\'))"\
于 2020-01-31T05:01:18.970 回答
-3

采用:

my_function({width:12});

代替:

my_function(width:12);
于 2015-01-20T13:01:35.063 回答