将 JSON 对象传递给函数的问题

mis*_*r_b 5 javascript json

我只是在学习 javascript,所以我认为这相对简单,但它已经让我烦恼了一段时间。

我有一个函数,它只显示我从 AJAX 响应调用的一些文本。这是我的代码。

if(this.responseText != null)
{
    var text = "<ul>";
    var object = eval("(" + this.responseText + ")");
    var track;
    for (var i = 0; i < object.length; i++)
    {
        track = object[i];
        text += "<li><img src=\"" + track.artwork_url + "\"/>";
        text += track.title;
        text += "<ul><li><a href=\"#\" onclick=\"playTrack(" + track + ");return false;\">Play</a></li>"
        text += "<li><a href=\"" + track.download_url + "?client_id=" + clientId + "\">Download</a></li></ul>"

        text += "</li>";
    }


    text += "</ul>";

    document.getElementById("content").innerHTML = text;
}

function playTrack(track)
{
     document.getElementById("content").innerHTML = "This has worked";
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢将 track 对象传递给函数 playTrack(现在是一个简单的函数,只显示一些文本)。我收到错误“Uncaught SyntaxError: Unexpected identifier”

如果我传入 track.id(或任何其他属性),则一切正常,但我不明白。

谢谢你的帮助,

B先生

alp*_*ian 3

你不能传递这样的对象。 track被转换为字符串,然后你的playTrack函数调用失败,因为语法错误。它将被渲染(类似的东西onclick=playTrack([Object object])显然不是有效的 JavaScript)。既然你知道它有效,那么仅仅传递 track.id 有什么问题吗?