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

如何在javascript函数中将JSON对象作为函数参数传递?,javascript,jquery,json,Javascript,Jquery,Json,在我的js函数中,我创建了一个div和一个link,当点击链接时,我会将一个参数传递给另一个js函数?我的代码怎么了 js功能1 //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 propert

在我的js函数中,我创建了一个div和一个link,当点击链接时,我会将一个参数传递给另一个js函数?我的代码怎么了

js功能1

 //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>";
 //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>";
//在元素列表之后传递json:浏览器显示错误:SyntaxError:missing]
//passJson([对象])
var dataItem=getDataItem()//具有title和name属性的json对象
var divStr=“;”;
因此,我尝试将“[]”添加到函数中,但它仍然显示错误

js功能2

 //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>";
 //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>";
//在元素列表之后传递json:浏览器显示错误:SyntaxError:missing]
//passJson([对象])
var dataItem=getDataItem();//具有title和name属性的json对象
var divStr=“;”;

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

按照代码的方式,不需要进行字符串连接。您只需执行
onclick='passJson(dataItem)
,如中所示

函数passJson(obj){
控制台日志(obj);
}
var dataItem={title:“hello”,name:“snoopy”}//具有title和name属性的json对象
var divStr=“.

函数passJson(数据){
控制台日志(数据);
}
函数getDataItem(){
返回{'title':'mytitle','name':'helloName'};
}
$(文档).ready(函数(){
var dataItem=getDataItem();//具有title和name属性的json对象
dataItem=JSON.stringify(dataItem);
var divStr=“hello clik me;”;
$('body').html($(divStr));
});

什么时候会出现语法错误?在“passJson”完成JSON.parse之后,为什么要尝试将数据转换为字符串,并通过将字符串分配给onclick?Geez来传递给函数,而不是以任何方式推荐的设计模式。如果要通过HTML将某些数据与对象关联,请将其设为t上的data xxx属性创建HTML对象,然后从事件处理程序中获取该属性。不能有这样的多行字符串。要么转义换行符,要么将每行设为字符串并连接它们。在另一个函数中,我还希望使用json对象,包括其标题和名称。一种方法是传递两个参数(dataItem.title,dataItem.name),另一种方式是传递json。我选择了最后一种方式,但它似乎是错误的。事实上,它只有一行,但格式不允许我在上面写一行。我已经再次编辑了这个问题。感谢您的服务。因为按钮和div是由js函数动态创建的,并且很容易在函数中声明。