在javascript和html中转义撇号(单引号)字符

wdc*_*wdc 0 html javascript

我有以下情况:

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

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

之后,这个字符串被插入到一些html元素中,如下所示:

dataHolder.innerHTML = str;
Run Code Online (Sandbox Code Playgroud)

我试图逃跑'与性格&apos;,&#39;和\u0027而所有这一切都渲染成'之后innerHTML方法被调用,所以当方法foo从上面的例子可以通过点击链接叫我总是得到JavaScript错误说:Uncaught SyntaxError: missing ) after argument list

jo_*_*_va 5

你需要在你的字符串中同时使用'和",所以你需要第三种方法来对字符串进行delcare,你可以使用模板字符串.将您的ba'r字符串声明为模板字符串并使用反斜杠转义其撇号\:

document.querySelector('#myDiv').innerHTML =
    '<a href="javascript:foo(`ba\'r`)">link</a>';

function foo(data) {
  console.log(data);
}
Run Code Online (Sandbox Code Playgroud)
<div id="myDiv"></div>
Run Code Online (Sandbox Code Playgroud)