有时我们在动态生成页面的时候会对一些元素添加点击事件。偶尔会采用直接字符串拼接的方式进行,这时如果传入的参数是一个json字符串可能会出现一些问题。
'<span class="blue cursor" onclick="demo('+JSON.stringify(rowData).+')"> 点击</span>'
这样可能会出现html加载后不能正常使用,如下:
这是因为,json中有双引号会和click的双引号闭合导致错误。就是下面这种情况:
<span class="blue cursor" onclick="demo('{" id":1,"name":"gai"}')"> 点击</span>
决绝方法
1.不使用json字符作为参数,这样很蠢。
2.非要用的话根据情况自己转义下
'<span class="blue cursor" onclick="demo(' + JSON.stringify(row).replace(/\"/g,"'") + ')"> 点击</span>'