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

本文深入分析了一段HTML代码中如何正确输出全局变量的问题,并提供了避免潜在错误的解决方案。通过实例演示了在JavaScript环境中正确使用变量的重要性,强调了在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>

 

但是还是不建议这么写。

 

转载于:https://www.cnblogs.com/childsplay/p/4636320.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值