添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

html标签拼接时,为什么有时候需要加转义字符

<span id="zz"></span>
    <span id="zz2"></span>
    <script>
        var a = {name: 'czq'};
        var newa = JSON.stringify(a).replace(/"/g,'&quot;');
        console.log(JSON.stringify(a));
        console.log(newa);
        var str = '<a onclick="ceshizz(\''+newa+'\')">测试</a>';
        var str2 = '<a onclick="ceshizz('+newa+')">测试</a>';
        document.getElementById('zz').innerHTML = str;
        document.getElementById('zz2').innerHTML = str2;
        function ceshizz(param) {
            console.log(param);
            console.log(JSON.parse(param));
    </script>

字符串拼接后的标签,方法传参时如果参数是字符串(或者是对象转换成字符串)编译后都会去掉字符串,本来是字符串的对象也会转换类型为对象。如果你希望编译后的传参依旧是字符串的形式可以加上转义字符\'。这样编译后会把 ' 带上,正常情况下编译后 ' 是不展示的。通过转义字符的使用编译后 ' 仍然存在使参数变成字符串的形式。详情请看。

另外

 <span id="zz"></span>
    <script>
        var b = 'abc';