2015-09-19 67 views
0

我正在试着学习Jquery。 我有一个问题:我必须动态地发送一个json作为函数的参数。我的代码是这样的:如何将json作为参数传递给函数

$('#grafo').append('<a class="list-group-item graph" href="#" id="' + nome.replace(/ /g,'') + '" onclick="printAnnotation(\'' + json + '\',\'' + index + '\')">' + name + '</a>'); 

我想获得一个JSON,但结果是一个字符串。

我该如何解决这个问题? PS:对不起,我的英语不好。

+0

不要丢在一个字符串类型。 ''printAnnotation(json,index)“>'会起作用 – hjpotter92

+0

你可以展示更多的代码来显示你定义了'json'和'index'的位置。 –

回答

0

尝试从脚本中添加事件处理程序,而不是(https://api.jquery.com/click/):

$('#grafo').click(
    function() 
    { 
     printAnnotation(json, index); 
    } 
); 
+1

It work,thanks!:) –

1

如果您将JSON内嵌嵌入到DOM中,就像使用字符串卡住一样。这不是什么大问题,因为你可以在你的函数中把字符串变成一个JSON对象。像这样:

function printAnnotation(jsonString, index) { 
    var json = JSON.parse(jsonString); 
    // do stuff 
} 
+0

他不工作:(我得到:“未捕获的SyntaxError:意外的令牌”o在解析 –

+0

您的json字符串也是无效的那么你能发布生成的值在DOM? –

+0

我生成它由于查询sparql 。我返回一个jsonp。 –

0

您可以转换使用JSON.parse()方法或jQuery的等效$.parseJSON的字符串JSON。

注:当通过嵌入在HTML中(例如在函数调用),JavaScript对象,按照以JSON格式使用JSON.stringify()方法字符串化对象:

$('#grafo').append('<a class="list-group-item graph" href="#" id="' + nome.replace(/ /g,'') + '" onclick="printAnnotation(\'' + JSON.stringify(json) + '\',\'' + index + '\')">' + name + '</a>'); 
相关问题