那如果之前的方法不行,想传递json对象怎么办呢?

使用下面这种方法,

getA = function(){var obj = {'projectId':123,'projectName':'aac'};var objStr = JSON.stringify(obj);console.info(objStr);var a = '<a href="javascript:void(0);" οnclick="sendTcMail('+objStr+')">test</a>';$('#test').html(a);    }

这里将json对象通过JSON.stringify(obj)方法转换成了json对象的字符串(其实就是obj外面加了双引号),就可以用在下面的a字符串中进行拼接,这样拼接出来,sendTcMail方法中就传递的是json对象,可是事实不如人意,浏览器渲染出来的并不是我们想要的效果,会发现引号错乱了,这是为什么呢?
原因就是:JSON.stringify(obj)方法转换的json字符串是通过双引号包裹的,虽然js单双引号都可以,但是在拼接a字符串时,最外层用的是单引号拼接的,所以拼接的objStr变量中也需要是用单引号包裹的;但是objStr变量是通过JSON.stringify(obj)方法来的,所以它并不是单引号就会出现拼接字符串引号不一致,导致浏览器解析html出来并不是我们想要的。

措施:将外层用双引号来拼接,修改如下:

getA = function(){var obj = {'projectId':123,'projectName':'aac'};var objStr = JSON.stringify(obj);console.info(objStr);var a = "<a href='javascript:void(0);' οnclick='sendTcMail("+objStr+")'>test</a>";$('#test').html(a);    }

这样拼接就没问题了,最终拼接完之后objStr中的双引号会自动去掉的,所有组成的字符串a中,onclick方法sendTcMail中的参数传递的是json对象obj,并不是json字符串objStr。这点要清楚。
只要遇到拼接字符串,中间还有用到变量,那变量一定也要是字符串类型,如果是对象去直接拼接,就会是对象引用,不是我们要的对象内容,一定要注意。

转载于:https://www.cnblogs.com/cainiao-Shun666/p/6861402.html

js拼的onclick调用方法需要注意的地方 之二相关推荐

  1. js按下回车键调用方法

    js按下回车键调用方法 下面有两种方法,要注意键盘上有两个"Enter"键,方法1对于数字区域的"Enter"键无效. 1.方法一: // mounted或cr ...

  2. js阳历转农历调用方法

    js阴历阳历转换代码,js阳历转农历调用教程如下: 输入一个日期 计算结果:计算出对应的阴历或阳历 js实现代码: <!-- function CalConv(M){FIRSTYEAR = 19 ...

  3. WebService 远程调用方法汇总

    WebService 远程调用方法汇总 一.Web Service 二.REST 三.RPC 一.Web Service webservice 即web服务,它是一种跨编程语言和跨操作系统平台的远程调 ...

  4. 标签中的onclick调用js方法传递多个参数的解决方案

    标签中的onclick调用js方法传递多个参数的解决方案 参考文章: (1)标签中的onclick调用js方法传递多个参数的解决方案 (2)https://www.cnblogs.com/twohea ...

  5. Android和JS之间互相调用方法并传递参数

    场景 Android中使用WebView加载本地html并支持运行JS代码和支持缩放: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detail ...

  6. 利用js的闭包原理做对象封装及调用方法

    创建一个js文件,名为testClosure.js: ? 1 2 3 4 5 6 7 8 9 (function () {   function a()   {     alert('i am a') ...

  7. paypal js调用方法整合方便以后使用

    paypal js调用方法整合 两种方式 client 调用api 两种方式 client(调用集成) server(调用api) 参考官方链接 client 直接用 let purchase_uni ...

  8. js 拼写 html 调用后台数据,onclick调用函数

    最近,项目开发发现有一些效果,需要自己在js下拼接html代码,做出想要的效果,但是分成两种:一种是html页面,这是多年前写静态页面时遇到一些问题,现在突然想起来,另一种是vue页面,这是最近遇到的 ...

  9. HTML用onclick调用servlet的方法

    HTML用onclick调用servlet的方法 这是我写的第一篇CSDN博客. 我不知道servlet是不是过时了,但是因为学校还在教嘛,所以就想着发一条. 今天我捣鼓了半天在网上找了半天都很难找到 ...

最新文章

  1. 十年之后,CV经典教材《计算机视觉:算法与应用》迎来第二版,初稿开放下载...
  2. Java中程序初始化的顺序
  3. 第十五周程序阅读-范型程序设计(5)
  4. 关于调试过程中单片机复位的几点心得与体会
  5. avalon 框架
  6. C程序生成一定范围内的随机数
  7. matlab 白色像素点,MATLAB 簡單的計算白色輪廓中像素點的個數
  8. 成都刘女士的第一场锤子科技发布会 | 现场特写
  9. div滚动条怎么设置_【20201123】做个用户管理系统(7)——个人资料修改页面、用户头像设置页面的模板的制作...
  10. CentOS7.6安装WirёGuαrd(二)
  11. DeepStream框架整理
  12. oracle developer连接access
  13. 学生管理系统IPO图_C语言学生信息管理系统演示和说明(文件版)
  14. python: 集合操作符和关系符号
  15. Windows脚本 同网段ip检测与持续ping包测试
  16. 实体机安装linux系统,实体机安装Ubuntu系统
  17. 【视野】解密腾讯完整前端技术体系
  18. 1031 查验身份证 PTA
  19. 面试题目之:说出至少4种vue当中的指令和它的用法?
  20. OneData方法论-概述

热门文章

  1. Python对命令提示符cmd以及操作系统的一些操作
  2. 《大数据导论》——2.3节业务流程管理
  3. android Notification 的使用
  4. 物以稀为贵-网管狂妄的原因
  5. HTML5本地存储详解
  6. 心情的旅行- 让自己慢下来(46)
  7. C++ 知识整理 函数
  8. MIT自适应律MRAC的理解和MATLAB实现
  9. 苹果手机计算机键盘声音怎么办,苹果键盘声音怎么设置大小声
  10. c# vscode 配置_用VS Code写C#