js中拼接字符串的函数中如何传json对象

最近在一些前段页面中,动态append网页元素,其中要传10-20个参数,例如:

//创建一个json对象,当然,也可以是返回的json对象。

var tempObj=new Object();

tempObj.a='aaa';

tempObj.b='bbb';

tempObj.c='ccc';

tempObj.d='ddd';

//........


// 就相当于var tempJson={'a':'aaa','b':'bbb','c':'ccc','d':'ddd','e':'eee'};//...........

var tempJsonStr=JSON.stringify(tempObj).replace(/\"/g,"'")

document.getElementById("testDiv").innerHTML='<div onclick="testFun('+tempJsonStr+')">


这样当点击 testDiv的时候,就把对应的 tempJson这个对象传给函数中了,直接在对应的函数中用就可以了。如果不用JSON.stringify(tempObj),则传过去的是[object Object],就达不到我们想要的效果了。


下面是详细的代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>首页</title>
<script type="text/javascript">
function init(){
var tempObj=new Object();
tempObj.a='aaa';
tempObj.b='bbb';
tempObj.c='ccc';
tempObj.d='ddd';
//........
// 就相当于var tempJson={'a':'aaa','b':'bbb','c':'ccc','d':'ddd','e':'eee'};//...........
var tempJsonStr=JSON.stringify(tempObj).replace(/\"/g,"'")
document.getElementById("testDiv").innerHTML='<div onclick="testFun('+tempJsonStr+')">请点击这里进行测试</div>'
}
function testFun(obj){
console.log(obj.a)
console.log(obj.b)
console.log(obj.c)
console.log(obj.d)
}
</script>
<style type="text/css">
</style>


</head>
<body onload="init()">
<div id="testDiv">

</div>
</body>
</html>


猜你喜欢

转载自blog.csdn.net/qq_20423863/article/details/80452622