html端拼html的时候带监听事件的坑(字符串转变量)

先上一段代码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(&quot;str&quot;)">test</div>

 

但是还是不建议这么写。

 

posted @   Tony_M  阅读(895)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示