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

标签 javascript jquery json

在我的js函数中,我创建了一个div和一个链接,当单击链接时,我将向另一个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>";

所以我尝试在函数中添加“[]”,但仍然显示错误。

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>";

最佳答案

通常,您不会将其称为 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);

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

您可能想要单独添加标记,然后将单击处理程序绑定(bind)到链接,因为通常我们希望采用 unobtrusive JavaScript 的方法。 .

关于javascript - 如何在 javascript 函数中传递 JSON 对象作为函数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23040849/

相关文章:

javascript - 如何滚动到响应式网站中的 anchor ?

javascript - jQuery ListView 格式设置

javascript - 如何在IE检查 block 中加载js文件

javascript - 动态更改的脚本源不起作用

javascript - 使用 jQuery 循环遍历 XML 属性和元素

javascript - iScroll 不显示滚动条,但允许我拖动内容

css - 为其他站点高效地重用(设计不佳的)JSON 模板?

json - Elasticsearch查询检索所有ID的特定类型的特定_source值

c# - 将键值对反序列化到列表中

javascript - 滚动底部隐藏的 div