JavaScript将对象作为参数发送

时间:2018-10-03 09:11:19

标签: javascript html string object

我已经用js创建了一个很长的HTML,我需要将onclick事件传递给一个图标,并且我想将一个长对象作为参数发送给其他需要的对象,例如:

var opt = "<i style='font-size:18px; color:orange; cursor:pointer;' onclick=\"barkod_onizle_dialog.apply('"+vs_id+"',"+stok_ozet+",'"+b.stok_id+"','"+$('[name=tarih]').val()+"','"+secilmis_depo+"','"+b.stok_id+"','"+seri+"','"+urun_stt+"','"+lot+"','"+b.stok_isim+"',this)\" class='fa'>&#xf06e;</i>";

但是在我的浏览器上,我得到了这个结果:

barkod_onizle_dialog.apply('54',[object Object],'1508','03.10.2018','11','1508','155','2022-10-02','156','ADVIA -DIRUI R1 KABI (75 mL)',this)

错误是:

  

未捕获的SyntaxError:意外的标识符

我无法使用报价方法解决问题。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

她的问题是您试图将object连接到string,因此调用了此toString()的方法object,这就是为什么它被表示的原因为[object object]

您需要stringify将此object串联起来,您需要在对象上使用JSON.stringify(),然后将它们串联到string

演示:

var obj = {a: 40, b: 60, c:'a string'};

var opt = "<i style='font-size:18px; color:orange; cursor:pointer;' onclick=\"barkod_onizle_dialog.apply('',,'','"+JSON.stringify(obj)+"','','','','','','',this)\" class='fa'>&#xf06e;</i>";
console.log(opt);

答案 1 :(得分:1)

您的stok_ozet变量包含一个对象,为什么它在串联的字符串中显示[object Object],因此您可能需要在串联期间将其转换为字符串,例如:

onclick=\"barkod_onizle_dialog.apply('"+vs_id+"',"+JSON.stringify(stok_ozet)+",'..

如果可以的话,我还建议将该点击附加在您的JS代码中:

var opt = "<i style='font-size:18px; color:orange; cursor:pointer;' class='fa barkod_onizle_dialog'>&#xf06e;</i>";

$('body').on('click', '.barkod_onizle_dialog', function() {
  barkod_onizle_dialog.apply(vs_id, stok_ozet, b.stok_id, $('[name=tarih]').val(), secilmis_depo, b.stok_id, seri, urun_stt, lot, b.stok_isim, this);
})