如何在javascript函数中将JSON对象作为函数参数传递?

Sar*_*rly 5 javascript jquery json

在我的js函数中,我创建了a div and a link,单击链接后,我将向另一个js函数传递一个参数?我的代码有什么问题?

js function1

 //pass a json:the browser show wrong:SyntaxError: missing ] after element list
 //passJson([object Object])
 var dataItem=getDataItem();//a json object which has title and name property
 var divStr="<div><a style='cursor: pointer' onclick='passJson(" + dataItem +")'><span title='spantitle'><i class='icon-mouse'></i></span></a>;</div>";
Run Code Online (Sandbox Code Playgroud)

因此,我尝试将“ []”添加到函数中,但仍然显示错误。

js function2

 //pass a json:the browser show wrong:SyntaxError: missing ] after element list
 //passJson([object Object])
 var dataItem=getDataItem();// a json object which has title and name property
 var divStr="<div><a style='cursor: pointer' onclick='passJson([" + dataItem +"])'><span title='spantitle' ><i class='icon-mouse'></i></span></a>;</div>";
Run Code Online (Sandbox Code Playgroud)

nop*_*ole 5

通常,您不将其称为JSON对象。您只需将其称为JavaScript对象即可。

代码的方式是,您不需要进行字符串连接。你可以onclick='passJson(dataItem)'

http://jsfiddle.net/6LzCA/5/

function passJson(obj) {
    console.log(obj);
}

var dataItem={ title: "hello", name: "snoopy" }; //a json object which has title and name property

var divStr="<div id='foo'><a style='cursor: pointer' onclick='passJson(dataItem)'><span title='spantitle'><i class='icon-mouse'></i>hmmm</span></a>;</div>";

$("body").append(divStr);
Run Code Online (Sandbox Code Playgroud)

当您点击链接“ hmmm”时,它将起作用。

您可能希望单独添加标记,然后将单击处理程序绑定到链接,因为通常,我们希望采用不引人注目的JavaScript的方法。