js onclick方法 传递json对象报错


用拼接字符串的方式构建html,只能拼接字符串,对象是没办法拼接的。
如果row是数字或字符串,则拼接结果为
lookCard(1) 或 lookCard(a)
如果row是对象,则拼接结果为
lookCard([object Object])
这里[object Object]会引起 Uncaught SyntaxError: Unexpected identifier
ps:上面的lookCard(a)也会引起错误,正确方法还要给字符串类型添加引号,即lookCard("a")
解决方法:
(1)将row转换成json,拼接进去,后面在函数里面再转换回来。
(2)拆开row,把row的多个属性逐一作为参数传递给函数。

(3)保存row为全局,传递row的凭证给函数,函数拿着凭证去全局取row对象。

转自:http://zhidao.baidu.com/link?url=4avbcOGmN60J_tSuCUNcHK5TIxfrADkeQfQHjwmT0ih2Xn4vdfCc-2xcO79Pz7dYNgK_fw3gyOGItENpWJYEtUvr5t-4ZmOiIviRvZceT9K

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
onclick事件中传递JSON对象,可以通过将JSON对象转换为JSON字符串,然后在传递之前使用JSON.stringify(value)方法进行转换。传递后,可以使用eval(value)方法JSON字符串转换回JSON对象。这是一种常见的方法,但也有其他方法可以实现相同的功能。\[1\] 例如,在JavaScript中,可以使用以下方式传递JSON对象: ``` var json = { "key": "value" }; var jsonString = JSON.stringify(json); var onClickFunction = "myFunction(" + jsonString + ")"; ``` 然后,在HTML中,可以将onClickFunction作为onclick事件的值: ``` <button onclick="eval(onClickFunction)">Click me</button> ``` 在这个例子中,当点击按钮时,myFunction函数将被调用,并且传递的参数将是JSON对象。在函数内部,可以使用传递的参数进行相应的操作。 需要注意的是,使用eval函数可能存在安全风险,因此在实际应用中,最好使用更安全的方法来处理JSON对象传递。 #### 引用[.reference_title] - *1* [jsonclickjson数据](https://blog.csdn.net/qq_43753724/article/details/112770175)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Onclick传递JSON对象时候出现的问题](https://blog.csdn.net/weixin_33688840/article/details/93125474)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [jsonclickjson数据所遇到的问题](https://blog.csdn.net/sjszscx/article/details/89066725)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值