[英]How to escape single quotes or double quotes within jquery's append(), onclick(), alert() at one time?
当我用javascript开发我的html时,我有一个问题。
我最终想要的是HTML:
<div id="test">
<div onclick="alert("it's a test.")">Show</div>
</div>
但在代码中我希望它像这样实现:
<div id="test"></div>
<script>
var tmp="it's a test.";//be careful, there must be a single quote in this variable
$('#test').append("<div onclick='alert(\" "+tmp+" \")'>Show</div>");
</script>
在萤火虫中它显示:
<div id="test">
<div ")'="" test.="" a="" s="" onclick="alert(" it">Show</div>
</div>
所以我认为这是一个逃避问题。 但我认为它至少有3个级别的深度。 有人可以帮帮我吗? 谢谢!
不要使用jQuery来编写内联脚本。 更换
$('#test').append("<div onclick='alert(\" "+tmp+" \")'>Show</div>");
同
$('<div>').click(function(){ alert(" "+tmp+" ") }).text('Show').appendTo('#test');
这条路
temp
)时,你不需要把它放在全局范围内,它可以在元素添加的范围内 要在评论中回答您的问题,您也可以
eventData
参数。 使用jQuery的eventData
参数的示例:
var names = ['A', 'B'];
for (var i=0; i<names.length; i++) {
$('<div>').text('link '+(i+1)).click(names[i], function(e) {
alert('Name : ' + e.data);
}).appendTo(document.body);
}
更简单的方法是将新div
附加到#test
然后使用事件委托来绑定新添加的div
click事件,如下所示:
$('#test').append("<div class='newDiv'>Show</div>");
$('#test').on('click','.newDiv',function() {
alert("it's a test.");
});
反斜杠可用于转义特殊字符
<div id="test"></div>
<script>
var tmp=\"it's a test.\";//be careful, there must be a single quote in this variable
$('#test').append("<div onclick='alert(\" "+tmp+" \")'>Show</div>");
</script>
这应该是有希望的,如果不是它应该帮助你开始
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.