Luc*_*Luc 5 html javascript jquery escaping
当我用javascript开发我的html时,我有一个问题.
我最终想要的是HTML:
<div id="test">
<div onclick="alert("it's a test.")">Show</div>
</div>
Run Code Online (Sandbox Code Playgroud)
但在代码中我希望它像这样实现:
<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>
Run Code Online (Sandbox Code Playgroud)
在萤火虫中它显示:
<div id="test">
<div ")'="" test.="" a="" s="" onclick="alert(" it">Show</div>
</div>
Run Code Online (Sandbox Code Playgroud)
所以我认为这是一个逃避问题.但我认为它至少有3个级别的深度.有人可以帮帮我吗?谢谢!
不要使用 jQuery 编写内联脚本。代替
$('#test').append("<div onclick='alert(\" "+tmp+" \")'>Show</div>");
Run Code Online (Sandbox Code Playgroud)
和
$('<div>').click(function(){ alert(" "+tmp+" ") }).text('Show').appendTo('#test');
Run Code Online (Sandbox Code Playgroud)
这边走
temp),你不需要把它放在全局作用域中,它可以在元素添加的作用域中要回答评论中的问题,您可以
eventData的参数。使用 jQueryeventData参数的示例:
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);
}
Run Code Online (Sandbox Code Playgroud)