我目前有一个像这样的html模态块:
<div id="modal">
<div class="header_buttons"></div>
<p>
Are you sure you would like to perform <%= action_name %>
on <%= count %> objects?
</p>
<div class="footer_buttons">
<button>Do <%= action_name %></button>
</div>
</div>
我想通过_.template
$("#modal").html() //-> escapes `<%`
$("#modal").text() //-> doesn't escape, but doesn't include tags.
我的直接解决方案是定位每个元素而不是整个块,以便我可以使用text()
但我很好奇这里是否有明显的解决方案呢?
答案 0 :(得分:8)
您经常看到的解决方案是将HTML嵌入式模板放在脚本标记中,而不是HTML转义。
将您的div
转换为:
<script id="modal" type="text/template">
...
</script>
...会使$("#modal").html()
返回原始HTML。
当然,如果有某种原因你需要它在div
,那么这不适合你。
答案 1 :(得分:4)
只需使用.html()
,然后搜索并替换模板标记:
$("#modal").html().replace(/<%=/g, '<%=').replace(/%>/g, '%>');
答案 2 :(得分:1)
_.unescape应该可以帮助您使用div而不是脚本。
。_ UNESCAPE($(&#34;#模态&#34;)HTML());