-1

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() に変更すると、最後の「小道具」しか取得できません。なぜですか?

append() を使用すると、Gig Name、Songkick URI、および Songkick ID を取得できますが、html() に変更すると、最後の Songkick ID のみが返されます。

4

1 に答える 1

1

html()すでに自分で言ったように、使用するたびにhtmlをクリアするためです。

append を使用するだけですが、最初に : if (i == 0) { $("#Gigs").html(""); ... を使用して html を 1 回クリアし、残りの時間は使用 しますが、 -tag$("#Gigs").append("<li>" + event[prop]);
を閉じる必要があることも指摘させてください。<li>

于 2013-06-02T13:46:51.373 に答える