在Javascript中逃脱单引号两次

时间:2017-01-15 10:09:23

标签: javascript escaping

我遇到了需要两次使用转义引用的情况。具体来说,我需要在单个引号的javascript函数中放置一个变量,但变量本身也有单引号。详细信息如下所示,问题行是类#34; tile_name":

template = '' +
    '<div name="'+$("#add_tags :selected").text()+'" class="tile" id="newsCat_gp" >' +
        '<span onclick="this.parentNode.style.display = \'none\';" class="closebtn">&times;</span>' +
        '<div class="tile__name"><b><font size="2px">'+$("#add_tags :selected").text()+'</b></font>  <a id="newCat__'+$("#idx_newsCat").text()+'img" style="text-align: right; float: right;" href="javascript:toggle5(\'newCat__\'+$("#idx_newsCat").text()+\'\', \'img\', \'newCat__\'+$("#idx_newsCat").text()+\'img\');"><img src=  "{% static '/img/minus.png' %}"></a> </div>' +
        '<div class="tile__list" id="newCat__'+$("#idx_newsCat").text()+'" style="display: block;"></div>' +
    '</div>';

我希望结果是

\'newCat__\'+$("#idx_newsCat").text()+\'\' 

成为

'newCat__'+$("#idx_newsCat").text()+' ' 
喜欢在tile_list类中的内容,最后给出结果      newCat__20,

其中20由$("#idx_newsCat").text()持有。

有人有想法吗?非常感谢。

2 个答案:

答案 0 :(得分:1)

你必须逃避&#39;你在哪里连接字符串

javascript:toggle5(\'newCat__'+$("#idx_newsCat").text()+'\', \'img\', \'newCat__'+$("#idx_newsCat").text()+'img\');

答案 1 :(得分:0)

也许这会有所帮助

&#13;
&#13;
var template = '' +
    '<div name="'+$("#add_tags :selected").text()+'" class="tile" id="newsCat_gp" >' +
        '<span onclick="this.parentNode.style.display = \'none\';" class="closebtn">&times;</span>' +
        '<div class="tile__name"><b><font size="2px">'+$("#add_tags :selected").text()+'</b></font>  <a id="newCat__'+$("#idx_newsCat").text()+'img" style="text-align: right; float: right;" href="javascript:toggle5(\'newCat__\'+$("#idx_newsCat").text()+\'\', \'img\', \'newCat__\'+$("#idx_newsCat").text()+\'img\');"><img src=  "{% static \'/img/minus.png\' %}"></a> </div>' +
        '<div class="tile__list" id="newCat__'+$("#idx_newsCat").text()+'" style="display: block;"></div>' +
    '</div>';

$('body').append(template);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
&#13;
&#13;
&#13;