2013-10-10 39 views
2

我是jQuery和JavaScript的新手,所以請耐心等待。我試圖執行一個AJAX get請求檢索包含軌道信息的格式像這樣我的JSON文件:jQuery選擇器上的變量?

[ 
    { 
     "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爲「site」的鏈接我想發送一個異步的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> 

通常情況下,我只想去這樣的:

$("site").attr("src","images/ComfortEagle.jpg"); 

但是現在我面臨着兩個問題。一,如何從我的JSON對象獲取新的URL,我已經將其作爲'歌曲'讀取,以及如何在我將其添加回文檔的html之前克隆的節點內的「網站」ID ?謝謝!

+1

+1對於舒適的老鷹 – Rooster

+1

只是從我在代碼中看到的內容開始。要用jQuery選擇一個使用id的元素,你需要在'$(「#site」)''前面加一個'#'' – Kierchon

+0

啊,好吧。謝謝。 –

回答

0

您可以從您的鑰匙

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

第一串聯的ID,如果你打算使用jquery,使用jQuery。

您可以使用th ejquery clone()方法而不是使用js cloneNode來完成此操作。

SEE THIS FIDDLE

我想這是你想要做一個更jQuery的ISH的解決方案。

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); 
}); 

AS的JSON解析,在每次迭代,你應該能夠訪問這個道具就像任何其他的JSON,所以在每個循環中,只是針對像道具:

song.albumCoverURL