目录
首页 笔记 详情

js拼接onclick参数无法识别,传递不过去问题解决


对于onclick事件的触发已经可以正常触发,但如果想在onclick方法里传递参数就会遇到参数无法传递下去,报错,不识别的问题,那问题如何解决呢,经过一番尝试,终于找到解决问题的方法,给大家分享,避免开发过程因此而浪费的时间:

var str = "测试";
var Thtml += '<div class="hzui-col-xs-6">'
  + '          <div class="ts_product-ico" οnclick="addCardClick('+str+')"></div>'
  + '    </div>' ;

如下,如果去触发以下方法,结果是方法可以访问,但参数传递报错;

addCardClick = function(str) {
	alert(str);
}

此时我修改尝试如下:

var str = "测试";
var Thtml += '<div class="hzui-col-xs-6">'
  + '          <div class="ts_product-ico" οnclick="addCardClick(1)"></div>'
  + '    </div>' ;

此果,方法可以正常访问,也可以弹出,说明进入了方法体
我再次修改:

var str = "测试";
var Thtml += '<div class="hzui-col-xs-6">'
  + '          <div class="ts_product-ico" οnclick="addCardClick("1")"></div>'
  + '    </div>' ;

此时发现,这时候又出了问题,总结如下,对int类型的可以正常传,而string类型的,就出现错误,修改如下:

var str = "测试";
var Thtml += '<div class="hzui-col-xs-6">'
  + '          <div class="ts_product-ico" οnclick="addCardClick(&quot;'+str+'&quot;)"></div>'
  + '    </div>' ;

在参数的前后加 <&quot>;,再次访问,可以正常弹出。

汇总

js中拼接html代码时onclick参数问题

一.如果是int类型。可以直接传参

二.如果是字符串类型。需要加上引号

1.使用转义符号\转义引号: (\''+strings+'\')

2.使用&quot;  。比如: (&quot;'+strings+'&quot;)

三.如果是对象。对象是不能直接拼接的。拼接的必须是字符串。因此需要将对象转成字符串。

如果直接使用对象。触发事件时会得到([onject Object])。会引起Uncaught SyntaxError: Unexpected identifier错误。

1.将对象拆开,分成单个参数传递。

2.设置全局变量

3.将对象转成json字符串JSON.stringify()。但是在转换过程中,可能会出现unexpected end of input错误。改错误是因为json字符串的双引号和oncilck的双引号冲突。需要将json字符串转成单引号字符串。

双引号转成单引号  JSON.stringify(data).replace(/\"/g,"'");  

 


写笔记

咨询

您的电子邮箱地址不会被公开。 必填项已用*标注