我有一个图像,当它点击时我试图将一个对象传递给onclick方法,但是我收到一个错误:
missing ) after argument list
调试器控制台在第1行显示错误,与HTML doctype声明相同。
但是,当我传递一个字符串时,一切正常,方法就会执行。
有人可以告诉我这里缺少什么吗?
var item = {test:"blah"};// throws error
var emptyString= "";//works fine
str = str + ' <img alt="" data-qtip="Submit Report" height="14px" width="14px" src="'+img+'" style="cursor:pointer" onclick="submitReport('+item+')"/>';
如果我传入emptyString,一切正常。
谢谢!
答案 0 :(得分:0)
您应该使用JSON.stringify
函数字符串化对象:
str = str + ' <img alt="" data-qtip="Submit Report" height="14px" width="14px" src="'+img+'" style="cursor:pointer" onclick="submitReport('+JSON.stringify(item)+')"/>';
答案 1 :(得分:0)
你混淆了两件事。您尝试将对象放入字符串中,这是不可能的。你必须对对象进行字符串化(例如将其设为字符串),然后像这样传递它。
str = str + ' <img alt="" data-qtip="Submit Report" height="14px" width="14px" src="'+img+'" style="cursor:pointer" onclick="submitReport('+JSON.stringify(item)+')"/>';
要将字符串返回submitReport()
中的对象,您需要解析它:
var obj = JSON.parse(stringifiedObject);