如何在动态创建的HTML标记内容中转义单引号

时间:2013-06-12 09:28:34

标签: javascript

在我的javascript代码中, 我有一个有字符串的变量。字符串包含'或引用它。示例

var name= "hi's";

我正在代码中动态创建链接。它被写为字符串,即变量content将动态用于在html页面上创建链接。

content= '<a onclick="javascript:fun(\'' + name + '\');">'

这里给出的问题是变量name中的引号完成了内容中的字符串。因此,内容的其余部分无法识别..

如果var name = 'hi"s';出现类似的问题 即如果有双引号。

plz help

1 个答案:

答案 0 :(得分:3)

这就是你如何正确地创建一个锚,完全避免逃避任何事情。

var name = "Hi's",
anchor = document.createElement('a');

// should have an href
// links will be displayed differently by some browsers without it
anchor.href = '#';
// using onclick for pragmatic reasons
anchor.onclick = function() {
    fun(name);
    return false;
}
anchor.innerHTML = 'hello world';

// later
mydiv.appendChild(anchor);

顺便说一下,onclick属性不应该以{{1​​}}开头;这已经暗示了。

<强>更新

如果您仍对内联版本感兴趣,则变量需要两个编码步骤:

  1. 第一个是正确序列化变量;我会使用"javascript:"作为

  2. 第二个是HTML转义;最简单的形式就是用适当的编码值替换双引号。

  3. 例如:

    JSON.stringify()