我不知道如何写这个,所以它可以工作。我们有一个页面,用户可以在其中上传文件,列表将显示在屏幕上。当文件名中有单引号时,问题就来了。我们正在使用 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()
行根本不会运行。在这两种情况下,我都得到了意外的标识符,只是在不同的点。
最佳答案
你需要三个反斜杠:
$(someElement).html('<label onclick="$(someOtherElement).attr(\'title\', \'TheFile\\\'Name.pdf\')">Some Text</label>');
为什么是 3?
第一个转义第二个反斜杠将转义 '
在 HTML 代码中。
第三个转义 '
以防止字符串关闭。
关于javascript - jQuery.html() 带单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22507296/