2015-09-19 65 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>'); 
相關問題