动态添加“<input onclick=“‘+json+‘“>“元素传参时不识别json的bug问题解决
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了动态添加“<input onclick=“‘+json+‘“>“元素传参时不识别json的bug问题解决,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1137字,纯文字阅读大概需要2分钟。
内容图文
![动态添加“<input onclick=“‘+json+‘“>“元素传参时不识别json的bug问题解决](/upload/InfoBanner/zyjiaocheng/1015/1df1503275554fb7b552e8ea9f8513c6.jpg)
问题描述:
var json = {a:1};
在html中使用js方法动态添加
"<input οnclick="functiona(\''+json+\'')">"
元素时不识别json数据
问题分析:
json在传参时,json为json格式的数据,传入后调用onclick方法只会显示未识别.
var json2 = JSON.stringify(json);
将json2传入后调用会在遇到json2数据中的第一个双引号后戛然而止,因为动态添加的方法在传入json2字符串数据后会有双引号{“a”:1},会与
"<input οnclick="functiona(\''+json+\'')">"
中出现的双引号产生冲突
问题解决:
将json数据string化后再将双引号全部转化为\'反斜杠单引号再进行动态添加元素
var data2 = JSON.stringify(json).replace(/\"/g,"\\\'");
"<input οnclick="functiona(\''+json+\'')">"
导入的结果可以正常读取
function functiona(data){
//将反斜杠去掉再将单引号变成双引号
var list = data.replace(/\\/g,"").replace(/\'/g,"\"");
//将list转化为json格式的数据
var data2 = {"ids": id,"list":[JSON.parse(list)]};
//如果data2需要提交给后台的话需要将data2转换为string化的数据
//注意使用data2.toString()的结果为"[object Object]"
//只能使用JSON.stringify(data2)进行转string化
//ajax中的 dataType: "json",contentType: 'application/json;charset=UTF-8',
//springboot后台接收要加@RequestBody接收像这种Vo类型的数据,不加@RequestBody会报错
}
内容总结
以上是互联网集市为您收集整理的动态添加“<input onclick=“‘+json+‘“>“元素传参时不识别json的bug问题解决全部内容,希望文章能够帮你解决动态添加“<input onclick=“‘+json+‘“>“元素传参时不识别json的bug问题解决所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。