Javascript 变量上的jQuery选择器?

Javascript 变量上的jQuery选择器?,javascript,jquery,html,ajax,json,Javascript,Jquery,Html,Ajax,Json,我不熟悉jQuery和JavaScript,所以请耐心听我说。我试图执行一个AJAX get请求来检索包含曲目信息的JSON文件,其格式如下: [ { "name" : "Short Skirt, Long Jacket", "artist" : "Cake", "album" : "Comfort Eagle", "genre" : "Rock", "year" : 2001, "album

我不熟悉jQuery和JavaScript,所以请耐心听我说。我试图执行一个AJAX get请求来检索包含曲目信息的JSON文件,其格式如下:

[
    {
        "name" : "Short Skirt, Long Jacket",
        "artist" : "Cake",
        "album" : "Comfort Eagle",
        "genre" : "Rock",
        "year" : 2001,
        "albumCoverURL" : "images/ComfortEagle.jpg",
        "bandWebsiteURL" : "http://www.cakemusic.com"
    },
    {
        ...
    }
]
我正在尝试使用以下两个功能:

function loadJSON () 
{
    $.getJSON("lab4.json", updateHTML(result));
}

$(document).ready(function () 
{
    $("site").click(function () 
    {
        loadJSON();
    });
});
当用户单击id站点的链接时,我希望发送一个异步javascript调用来检索我的JSON文件。成功后,应在此处调用我的updateHTML函数:

function updateHTML (result)
{
    var templateNode = document.getElementById("song-template").cloneNode(true);
    document.removeChild(getElementById("song-template"));

    $.each(result, function(i, song)
    {
        var songNode = templateNode.cloneNode(true);
    });
}
现在,我陷入了困境:既然我有了这个克隆节点,我该如何使用jQuery在这里填写HTML中的所有字段:

<a id="site" href="#"><img id="coverart" src="noalbum.png" /></a>
<h1 id="title"></h1>
<h2 id="artist"></h2>
<h2 id="album"></h2>
<p id="date"></p>
<ul id="genres"></ul>

但现在我面临两个问题。第一,我如何从我的JSON对象中获取新的url,我已将其读入为“宋”,第二,我如何在将站点id添加回文档的html之前将其定向到我克隆的节点中?谢谢

您可以从密钥连接ID

$.each(dataObj, function(key, val) {
    //dataObj is your returned JSON
    if ($("#" + key).length)
        $("#" + key).val(val);
});

首先,如果要使用jquery,请使用jquery

您可以使用ejquery克隆方法而不是js克隆节点来实现这一点

我认为这就是你试图用一个更具jquery风格的解决方案来解决的问题

var song = [1,2,3,4];

var templateNode = $("#lala");
$.each(song, function(key, val){
   var songNode = templateNode.clone(true);
    songNode.children('span.yo').text(val);
    $('#wrap').append(songNode);
});
至于json解析,在每次迭代中,您应该能够像访问任何其他json一样访问道具,因此在每个循环中,只需针对一个道具,如:

song.albumCoverURL

只是我在你的代码中看到的一个提示。要使用id选择带有jQuery的元素,您确实需要在id前面加一个,如$site,这里有一个逻辑错误:$.getJSONlab4.json,updateHTMLresult;你执行updateHTML太早了。我不知道你的意思。太早了?
song.albumCoverURL