带有单引号的jQuery.html()

时间:2014-03-19 13:24:49

标签: javascript jquery html

我无法弄清楚如何写这个,所以它有效。我们有一个页面,用户可以上传文档,列表将显示在屏幕上。当文件名中包含单引号时,就会出现问题。我们正在使用jQuery。有一些代码生成正在进行,但这是出现的基础知识。

$(someElement).html('<label onclick="$(someOtherElement).attr(\'title\', \'TheFile\\'Name.pdf\')">Some Text</label>');

文件名中的单引号导致问题。我试过用一个反斜杠和两个反斜杠来逃避它。使用单个反斜杠代码运行但生成此html:

<label onclick="$(someOtherElement).attr('title', 'TheFile'Name.pdf')">Some Text</label>

现在在onclick上失败了。

使用2个反斜杠,jquery html()行根本不会运行。在这两种情况下,我都会在不同的点获得意外的标识符。

3 个答案:

答案 0 :(得分:2)

你需要一个三重反斜杠:

$(someElement).html('<label onclick="$(someOtherElement).attr(\'title\', \'TheFile\\\'Name.pdf\')">Some Text</label>');

为什么3?

第一个逃脱第二个反斜杠,它将逃脱HTML代码中的'

第三个逃脱'以防止字符串关闭。

答案 1 :(得分:1)

你不仅需要加倍,而且还要加倍反斜杠。

原因是您最初通过执行'来逃避\'。现在,您有两个字符要转义,\转到\\'转到\'再次转发\\\'

答案 2 :(得分:0)

How to escape single quote

尝试在&amp;处使用字符值。逃避报价的符号。