先上一段代码demo
function test(a){ console.log(a) } var s = "str", str="wtf"; $("body").append('<div class="test" onclick=test('+s+')>test</div>');
猜猜看点击test这个标签的时候会打印出"str"还是"wtf"?
居然是"wtf",wtf!
这段代码在页面里写的html是这样的
<div class="test" onclick="test(str)">test</div>
输出出来的str完全就是一个全局变量嘛,说好的字符串呢。
这种写法耦合不说,遇到这种字符串转变量的就坑爹了。
解决方法,加引号输出
$("body").append('<div class="test" onclick=test("'+s+'")>test</div>');
这样输出出来的html就是
<div class="test" onclick="test("str")">test</div>
但是还是不建议这么写。