按钮单击事件,把整个JSON传给函数报错。。

soamu 2018-06-27 09:34:29


var data={"name":"张三","age":25}

str = "<div style=\"width:50%;text-align:right;\"><input type=\"button\" value=\"加入购物车\" onclick=\"OpenGoodsGuige('" + JSON.stringify(data)\"></div>";


function test(jsonstr)
{
console.log(jsonstr);
}
...全文
254 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
soamu 2018-06-27
  • 打赏
  • 举报
回复
引用 2 楼 ambit_tsai 的回复:
如果data是在全局定义的话,可以
onclick=\"OpenGoodsGuige(window.data)\">

不是全局的,,在循环内定义的。
ambit_tsai-微信 2018-06-27
  • 打赏
  • 举报
回复
如果data是在全局定义的话,可以 onclick=\"OpenGoodsGuige(window.data)\">
soamu 2018-06-27
  • 打赏
  • 举报
回复
我用escape的方式已经解决了。不知道是不是还有更好的办法。
Logerlink 2018-06-27
  • 打赏
  • 举报
回复
引用 1 楼 soamu 的回复:
我用escape的方式已经解决了。不知道是不是还有更好的办法。

换这个上去试试 多半是字符串拼接的问题

str = "<div style=\"width:50%;text-align:right;\"><input type=\"button\" value=\"加入购物车\" onclick=\"OpenGoodsGuige("+JSON.stringify(data).replace(/\"/g,"'")+")\" /></div>"

还有我想问的是 你用escape是怎么解决的 .........

ambit_tsai-微信 2018-06-27
  • 打赏
  • 举报
回复
利用JSON.stringify(data).replace(/"/g, '"')完美解决

<script type="text/javascript">
var data={"name":"张三","age":25};
str = '<div style="width:50%;text-align:right;"><input type="button" value="加入购物车" onclick="OpenGoodsGuige('+ JSON.stringify(data).replace(/"/g, '"') +')"></div>';
document.body.innerHTML += str;
function OpenGoodsGuige(jsonstr)
{
console.log(jsonstr);
}
</script>

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧