onclick使用JSON对象传参报错解决方法

in js with 0 comment

拼接字符串作为html片段,有时候使用onclick需要传递一个对象,比如以下使用方法

var  showJson={"name":"张三"};
$(".showButton") .append( ''<a class="delecls" onclick="show(''+showJson+'')" href="javascript:void(0)" title="显示">
	显示</a>'');
	show(data){
	console.log(data);
	}

这样处理输出的是[onject object],很显然不是我们想要的。
使用JSON.stringify(showJson)结果报错,很显然肯定是那里出了问题。

那么解决方法就是
1.先JSON.stringify(json)

2.将双引号变成单引号replace(/"/g,"''")

3.将括号里的单引号除掉

4.function 直接获取到json对象,且不需要evel

var  showJson={"name":"张三"};
showJson=JSON.stringify(showJson);
$(".showButton") .append( ''<a class="delecls" onclick="show(''+showJson.replace(/\"/g,"''")+'')" href="javascript:void(0)" title="显示">
	显示</a>'');
	show(data){
	console.log(data);
	}
```'
X O