Javascript 将JQuery从append()更改为html()时会丢失JSON数据,为什么以及如何停止此操作(Songkick API)?

Javascript 将JQuery从append()更改为html()时会丢失JSON数据,为什么以及如何停止此操作(Songkick API)?,javascript,jquery,json,api,Javascript,Jquery,Json,Api,我从中获取了此代码,并对其进行了轻微修改: $(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.

我从中获取了此代码,并对其进行了轻微修改:

$(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]);
            }
          })
        })           
      };
    }); 
  });
});
$(函数(){
var key=“我的钥匙”;
变量url=”http://api.songkick.com/api/3.0/search/artists.json?query=“+userSearch+”&apikey=“+key+”&jsoncallback=?”;
$.getJSON(url,函数(json){
$.each(json.resultsPage.results.artist,函数(i,结果){
如果(i==0){
艺术家_url=”http://api.songkick.com/api/3.0/artists/“+result.id+”/calendar.json?apikey=“+key+”&jsoncallback=?”;
$.getJSON(艺术家url,函数(数据){
$.each(data.resultsPage.results.event,function(i,event){
用于(事件中的道具){
如果(!result.hasOwnProperty(prop)){
继续;
}
$(“#Gigs”).html(“
  • ”+事件[prop]); } }) }) }; }); }); });
  • if(result.displayName==“an_artist_name”)对我不起作用,因此if(i==0)似乎可以作为一种解决方法。在原文中,我遇到问题的代码是:

    $("#songkick").append("<li>" + prop + ". " + event[prop]);
    
    $(“#songkick”).append(“
  • ”+prop+”+event[prop]);
  • 我已将其修改为:

    $("#Gigs").html("<li>" + event[prop]);
    
    $(“#Gigs”).html(“
  • ”+事件[prop]);
  • Gigs是我希望数据出现的元素的id。我不想要append(),因为我希望在每次后续搜索时清除之前的结果,但是当我将代码从append()更改为html()时,我只得到最后一个“prop”,这是为什么


    使用append(),我得到了Gig名称、Songkick URI和Songkick ID,但当我改为html()时,它只会给我最后一个,Songkick ID。

    ,因为你每次使用
    html()
    时都会清除html,就像你自己说的那样

    只需使用append,但在开始时使用以下命令清除html一次:
    if(i==0){$(“#Gigs”).html(“”;…
    剩下的时间都用
    $(“#Gigs”)。追加(“
  • ”+事件[prop]);


  • 但我也要指出,你应该关闭
  • -标签

    只要读一下,它就行了!非常感谢,非常感谢:)注意到了一个小问题,尽管每次都会错过第一个音乐会结果。自从添加
    if(i==0)后,我真的不明白为什么
    …您是否可以按照您更改代码的方式对代码进行编辑,以使我能够理解现在的问题到底是什么以及问题的原因…当前的代码是:
    $.getJSON(艺术家url,函数(数据){$.each(data.resultsPage.results.event,函数(i,event){for(事件中的道具){if(!result.hasOwnProperty(prop)){continue;}if(i==0){$(“#Gigs”).html(“”;}否则{$(“#Gigs”).append(“
  • ”+事件[prop]);}})}
  • 将if代码更改为
    if(i==0){$(“#Gigs”).html(“#Gigs”)}$(“#Gigs”).append(
  • ”+事件[prop]);
  • 。在开始时清除代码,在每种情况下都追加元素。