繁体   English   中英

在JavaScript和HTML中转义撇号(单引号)字符

[英]Escaping apostrophe (single quote) character in javascript and html

我有以下情况:

我在javascript中编写了一个包含撇号字符的字符串。 该字符串实际上是html代码,后来使用innerHTML方法附加到html。 所以代码看起来像这样:

var str = '<a href="javascript:foo("ba'r")">link</a>'; (argument of the foo function is string)

然后,将这个字符串插入到这样的html元素中:

dataHolder.innerHTML = str;

我试图逃跑'字用&apos; &#39; \'但是所有这些在调用innerHTML方法后都呈现为' ,因此,当通过单击链接调用上述示例中的方法foo时,我总是收到JavaScript错误,说: Uncaught SyntaxError: missing ) after argument list出现Uncaught SyntaxError: missing ) after argument list

你需要有两个'"你的字串,所以你将需要第三个办法delcare一个字符串,您可以使用模板字符串为。声明你ba'r字符串作为模板字符串,并使用反斜杠逃脱它的撇号\\

 document.querySelector('#myDiv').innerHTML = '<a href="javascript:foo(`ba\\'r`)">link</a>'; function foo(data) { console.log(data); } 
 <div id="myDiv"></div> 

在字符串中使用\\'代替' ,因此应该

var str = '<a href="javascript:foo(ba\\'r)">link</a>';

但是,此代码仅在字符串格式方面是正确的。 我想你想要的可能是

var str = '<a href="javascript:foo(\\'bar\\')">link</a>';

您也可以使用反引号`来避免此问题:

var str = `<a href="javascript:foo(ba'r)">link</a>`;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM