未捕获的SyntaxError:无效或意外的令牌

Him*_*ngh 27 javascript jquery razor

我有这样的剃刀语法:

   foreach(var item in model)
 {
<td><a href ="#"  onclick="Getinfo(@item.email);" >6/16/2016 2:02:29 AM</a>  </td>
 }
Run Code Online (Sandbox Code Playgroud)

收到请求的我的javascript是这样的:

<script type="text/javascript" src="~/Scripts/jquery-1.9.1.js"></script>
<script type="text/javascript">
    function Getinfo(elem) {
        var email = document.getElementById(elem).innerHTML;
    }
</script>
Run Code Online (Sandbox Code Playgroud)

单击href链接时,我在浏览器的控制台中收到以下错误:

"Uncaught SyntaxError:无效或意外的令牌",

这部分加下划线:

    **</a>  </td>**
Run Code Online (Sandbox Code Playgroud)

我是初学者,所以我在语法上遇到了很多困难.如果那是那么请帮助我.

Sat*_*pal 45

你应该传入@item.email引号,然后它将被视为字符串参数

<td><a href ="#"  onclick="Getinfo('@item.email');" >6/16/2016 2:02:29 AM</a>  </td>
Run Code Online (Sandbox Code Playgroud)

否则,将其视为变量,从而生成错误.


Ima*_*our 12

当您有一个单行字符串(电子邮件)但如果您有一个

多行字符串,错误仍然存​​在。

请看一下这个问题:

<!-- start: definition-->
@{
    dynamic item = new System.Dynamic.ExpandoObject();
    item.MultiLineString = @"a multi-line
                             string";
    item.SingleLineString = "a single-line string";
}
<!-- end: definition-->
<a href="#" onclick="Getinfo('@item.MultiLineString')">6/16/2016 2:02:29 AM</a>
<script>
    function Getinfo(text) {
        alert(text);
    }
</script>
Run Code Online (Sandbox Code Playgroud)

将 Getinfo 中的单引号(')更改为反引号(`),如下所示,错误将得到修复:

<a href="#" onclick="Getinfo(`@item.MultiLineString`)">6/16/2016 2:02:29 AM</a>
Run Code Online (Sandbox Code Playgroud)