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

标签 javascript 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;

我尝试使用 ''\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/

相关文章:

javascript - 是否有提供良好兼容性实现的 HTML5 sessionStorage 包装器?

java - 在Java中将HTML解析为字符串

html - 限制在页脚上滚动

JavaScript:4 个异步函数在继续之前按顺序等待彼此完成?

javascript - 如何使Code Igniter ajax请求URL出现在浏览器URL中。

javascript - 使用 jQuery 的自定义搜索当前不工作

html - 为什么顶部边距正在崩溃但底部边距却没有?

html - 使用边距居中 div

html - Bootstrap 3 div布局

javascript - 选择标签似乎弄乱了我的 CSS