我从Sharks with Lazers中获取了这段代码,稍作修改:
$(function(){
var key="My key";
var url="http://api.songkick.com/api/3.0/search/artists.json?query=" + userSearch + "&apikey=" + key + "&jsoncallback=?";
$.getJSON(url,function(json){
$.each(json.resultsPage.results.artist,function(i,result){
if(i==0){
artist_url="http://api.songkick.com/api/3.0/artists/" + result.id + "/calendar.json?apikey=" + key +"&jsoncallback=?";
$.getJSON(artist_url,function(data){
$.each(data.resultsPage.results.event,function(i,event){
for (prop in event) {
if (!result.hasOwnProperty(prop)) {
continue;
}
$("#Gigs").html("<li>" + event[prop]);
}
})
})
};
});
});
});
if (result.displayName=="an_artist_name") 对我不起作用,所以 if(i==0) 似乎可以作为一种解决方法。在原文中,我遇到问题的代码是:
$("#songkick").append("<li>" + prop + ". " + event[prop]);
我已将其修改为:
$("#Gigs").html("<li>" + event[prop]);
Gigs 是我希望数据出现的元素的 id。我不想 append(),因为我希望每次后续搜索都清除以前的结果,但是当我将代码从 append() 更改为 html() 时,我只得到最后一个“prop”,这是为什么呢?
使用 append(),我得到 Gig Name、Songkick URI 和 Songkick ID,但是当我更改为 html() 时,它只给了我最后一个,Songkick ID。