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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未捕获的SyntaxError:无效或意外的令牌相关的知识,希望对你有一定的参考价值。

我有这样的剃刀语法:

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

我收到请求的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>

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

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

这部分加下划线:

    **</a>  </td>**

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

答案

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

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

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

另一答案

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

多行字符串,错误将保留。

请调查此事:

<!-- 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>

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

<a href="#" onclick="Getinfo(`@item.MultiLineString`)">6/16/2016 2:02:29 AM</a>
另一答案

在这种情况下,我也遇到了多行字符串的问题。 @ Iman的反引号(`)解决方案在现代浏览器中运行良好,但在Internet Explorer中导致无效的字符错误。我不得不使用以下内容:

'@item.MultiLineString.Replace(Environment.NewLine, "<br />")'

然后我不得不把回车再次放回js函数中。不得不使用RegEx来处理多个回车。

// This will work for the following:
// "hello
world"
// "hello<br>world"
// "hello<br />world"
$("#MyTextArea").val(multiLineString.replace(/
|<brs*/?>/gi, "
"));

以上是关于未捕获的SyntaxError:无效或意外的令牌的主要内容,如果未能解决你的问题,请参考以下文章

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

未捕获的 SyntaxError:意外的令牌导出 (Redux)

未捕获的 SyntaxError:意外的令牌导入 - Reactjs

Javascript:未捕获的 SyntaxError:意外的令牌 <

SyntaxError:无效或意外的令牌@import

将 Moment js 与 ASP 5/MVC6 一起使用时出现“未捕获的 SyntaxError:意外的令牌导入”