[英]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;
我试图逃跑'
字用'
, '
和\'
但是所有这些在调用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.