我有以下情况:
我在 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;
我尝试使用 '
、'
和 \u0027
转义 '
字符但在调用 innerHTML
方法后,所有这些都会呈现为 '
,因此当通过单击链接调用上面示例中的方法 foo
时我总是收到 javascript 错误:参数列表后 Uncaught SyntaxError: Missing )
最佳答案
您的字符串中需要同时包含 '
和 "
,因此您需要第三种方法来删除字符串,您可以使用 template strings 来实现。将您的 ba'r
字符串声明为模板字符串,并使用反斜杠 \
转义其撇号:
document.querySelector('#myDiv').innerHTML =
'<a href="javascript:foo(`ba\'r`)">link</a>';
function foo(data) {
console.log(data);
}
<div id="myDiv"></div>
关于javascript - 在 javascript 和 html 中转义撇号(单引号)字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54692370/