Ik heb een scheermes syntaxis als volgt:
foreach(var item in model)
{
<td><a href ="#" onclick="Getinfo(@item.email);" >6/16/2016 2:02:29 AM</a> </td>
}
Mijn javascript die het verzoek ontvangt, gaat als volgt:
<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>
Als u op de HREF-link klikt, ontvang ik de volgende fout in de console van de browser:
“UncoughtyntaxEror: ongeldig of onverwacht token”,
En dit deel is onderstreept:
**</a> </td>**
Ik ben een beginner, dus ik kom veel vast in de syntaxis. Als het dat is, help me dan alstublieft.
Antwoord 1, Autoriteit 100%
U moet doorgeven @item.email
in offertes, dan wordt deze behandeld als string-argument
<td><a href ="#" onclick="Getinfo('@item.email');" >6/16/2016 2:02:29 AM</a> </td>
Anders wordt het behandeld als variabele dus fout wordt gegenereerd.
Antwoord 2, Autoriteit 19%
Het geaccepteerde antwoordwerk wanneer u een enkele lijntekenreeks hebt (de e-mail), maar als u een
hebt
Multiline-reeks, de fout blijft.
Zoek deze kwestie:
<!-- 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>
Wijzig de single-quote (‘) naar backtick (`) in GetInfo zoals hieronder en fout wordt vastgesteld:
<a href="#" onclick="Getinfo(`@item.MultiLineString`)">6/16/2016 2:02:29 AM</a>
Antwoord 3
Ik heb ook een probleem gehad met multiline-snaren in dit scenario. @ Iman’s Backtick (`) Solution werkte geweldig in de moderne browsers, maar veroorzaakte een ongeldige tekenfout in Internet Explorer. Ik moest het volgende gebruiken:
'@item.MultiLineString.Replace(Environment.NewLine, "<br />")'
Dan moest ik de koets weer in de JS-functie terugzetten. Moest Regex gebruiken om meerdere koetsrendementen te verwerken.
// This will work for the following:
// "hello\nworld"
// "hello<br>world"
// "hello<br />world"
$("#MyTextArea").val(multiLineString.replace(/\n|<br\s*\/?>/gi, "\r"));