我已经用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'></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:意外的标识符
我无法使用报价方法解决问题。
感谢您的帮助。
答案 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'></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'></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);
})