onclick 获取img 里面的id_平台开发过程中的坑--onclick中函数参数问题(JS 长数字串解析问题)...

e411e049f58786e4f1a5da1b6be571f5.png

废话不多说,直接上代码(我在开发PTP平台,前端使用vueJs):

 btn ="<a href='#'  onclick='alert("+item.setId+")'></i>&nbsp;修改</a>";

代码很简单,说白了就是onclick传递个函数(带参),这边我简化成了一个alert方法。

平常用烂了的方法,忽然间调试的时候发现了问题:

错误1,参数解析问题。

我的setId格式如下:200520150302542ff613833

解析到ff,报ff没有定义。

原因:数字中夹着字符,前面一段会以数字解析,但到字符时,会认为是定义的变量,导致失败。

解决:我直接把ID改为纯数字,也就是把FF删除掉,一了百了。

错误2,参数数据还是不对

200520150303595677824

200520150303596615862

200520150303596616894

200520150303596628857

200520150303596629804

我每列的setid数据是不一样,但发现获取的数据值完全不一样……

ebaca4d9aa7e5d56a6a04bb6bafc57ed.png

这就很奇怪了,我另外一个ID获取却是正常的……

饶了一圈,开始怀疑到长度的问题,因为另外一个ID只有两位,这个很长……

所以进一步验证,干脆直接

……οnclick='alert("+200520150303596616894+")'>……

果然出问题了(JS对数字长度有限制的,超过16位就会出现失真!

aa1878a9a840babf91e1abf7d3b41c0b.png

可以确认的是,即便是数字,但数字过长的情况,解析就出现问题了!

所以必须强制字符串

……οnclick='alert("200520150303596616894")'>……

59570dece3551b7ec78e700a503f466f.png

这次果然就对了……

那么,接下来,我们就很清楚了,入参的参数必须带上双引号整体作为参数传递,代码如下:

……οnclick='alert("" +item.setId+ "")'>……

通过转义,把前后的引号带入即可!再次测试验证通过!

033d5c95e69d2399f4d6ebcd611807f1.png

PS:建议后面养成好习惯,统一都以字符串传递,就不会有这些麻烦事情了~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值