前端HTML拼接js时,用onclick等方法传递对象解决办法

关键代码:

JSON.stringify(data).replace(/"/g, "\'")
//关键代码 :将字符串中的单引号改成双引号,只有这样JSON.parse才能用
const regex= jsonData.replace(/'/g, '"')
const parseData = JSON.parse(regex)
解决根本问题:传参报错,或者传参是’[object,object]‘不能解析问题以及Unexpected token ' in JSON at position 1等问题

const data ={
        address: '仙林大道163号',
        areaName: '秦淮区',
        cityName: '南京市',
        id: 2,
        latitude: 32.11956,
        locationName: '南京大学仙林校区2',
        longitude: 118.958406,
        provinceName: '江苏省'
      }
const jsonData = JSON.stringify(data).replace(/"/g, "\\'")
const startStyle =
    'padding:5px;background-color:rgb(236, 245, 255);font-size:12px;border:1px solid #409eff;color:#409eff;cursor:pointer'
const endStyle =
    'padding:5px;background-color:rgb(254, 240, 240);font-size:12px;border:1px solid #f56c6c;color:#f56c6c;cursor:pointer;margin-left:10px'

return `<div style="padding:0 5px">
    <button style="${startStyle}" onClick="setStart('${jsonData}')">
      设为起点
    </button>
    <button style="${endStyle}" onClick="setEnd('${locationName}','${longitude}','${latitude}')">
      设为终点
    </button>
  </div>

const setStart = (jsonData, lng, lat) => {
  //关键代码 :将字符串中的单引号改成双引号,只有这样JSON.parse才能用
  const  regex= jsonData.replace(/'/g, '"')
  const parseData = JSON.parse(regex)
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 方便起见不分parameter[形参,出现在函数定义中]和argument[实参,其值为传入函数的值],一律当作a...
    东月三二阅读 2,953评论 0 0
  • 一、简介 参考JavaScript 教程[https://www.runoob.com/js/js-tutoria...
    想聽丿伱說衹愛我阅读 3,269评论 0 1
  • jquery介绍 jQuery是目前使用最广泛的javascript函数库 据统计,全世界排名前100万的网站,有...
    就是这么帅_567e阅读 4,993评论 0 0
  • ECMAScript - 学习笔记 🎬 🧩nvm node.js 包管理工具 nvm github[https:/...
    Super三脚猫阅读 3,919评论 0 1
  • Web开发需要用到哪些技术? 这套系统介绍使用JavaScript来完成Web开发,我们在学习js之前需要了解一下...
    三月木头阅读 2,498评论 0 0