HTML 中 onclick 触发函数 xxx(param) 要传递对象参数的解决方法

在HTML 拼接中,有时会用到 onclick 事件绑定函数,并要其中传递参数;简单的参数不用说,但如果是一个对象的话,就会出现报错!

解决方法:

将对象转为 json ,再进行传递(HTML不能直接传递对象);

备注:

区分 “js对象” 和 “json ” :js 在接受到json 时能自动转化为js 对象;而例如HTML 中函数传递时,对象的传递只能转为json 来传!


参考如下:

js中写html代码(onclick参数中带有json对象)

  • 当你传进去的是字符串的时候: 
    要带有引号才可以,不然是会报错的。

  • 当参数是 json 对象时: 
    用拼接字符串的方式构建html,只能拼接字符串,对象是没办法拼接的。 
    当进去的是对象时候,当你触发事件的时候,你将得到的是([object Object]) 
    这里[object Object]会引起 Uncaught SyntaxError: Unexpected identifier 
    在这里还会遇到一个问题就是 
    unexpected end of input 这个错误是由于带的json字符串。它的双引号与onclick控件的双引号 
    起冲突了,解决方法,将json字符串的双引号转换成单引号就行了,

单引号、双引号互换

解决方法: 
(1)将row转换成json,拼接进去,后面在函数里面再转换回来。 
(2)拆开row,把row的多个属性逐一作为参数传递给函数。 
(3)保存row为全局,传递row的凭证给函数,函数拿着凭证去全局取row对象

js 单引号替换成双引号,双引号替换成单引号 操作

1.双引号替换成单引号

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var _adrobj = JSON.stringify(address).replace(/\"/g,"'");  
ps:
[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var a = {a:1,b:2};  
  2. JSON.stringify(a)====>"{"a":1,"b":2}"  
2.单引号替换成双引号
[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var _nstr = _adrdata.replace(/'/g, '"');  
ps:

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var json = JSON.parse(_nstr);  
  2.                 if (json.storeDelivery == 0) {  
  3.                     msgBox($.msg.OutDistributeAddress);  
  4.                     return;  
  5.                 }  
[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. function escapeHTML(a) {  
  2.     return a.replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&").replace(/ /g, " ").replace(/"/g, """).replace(/'/g, "'")  
  3. }  

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值