0

JavaScriptとjQueryはちょっと初心者ですが、ものづくりをしながら学んでいます。現在、JS 用の last.fm API ( https://github.com/fxb/javascript-last.fm-api ) を使用しており、リストの最初のアルバムを取得しようとしています。

次のコードでデータをフェッチします。

lastfm.track.getInfo({track: activeMedia.title, artist: activeMedia.author}, {success: function(trackInfoResult){
// doing things with trackInfoResult
}, error: function(code, message){
    console.log("Error code: " + code);
}});

この出力は、次の構造にあります ( http://www.last.fm/api/show/track.getInfoにあります)。

<track>
  <id>1019817</id>
  <name>Believe</name>
  <mbid/>
  <url>http://www.last.fm/music/Cher/_/Believe</url>
  <duration>240000</duration>
  <streamable fulltrack="1">1</streamable>
  <listeners>69572</listeners>
  <playcount>281445</playcount>
  <artist>
    <name>Cher</name>
    <mbid>bfcc6d75-a6a5-4bc6-8282-47aec8531818</mbid>
    <url>http://www.last.fm/music/Cher</url>
  </artist>
  <album position="1">
    <artist>Cher</artist>
    <title>Believe</title>
    <mbid>61bf0388-b8a9-48f4-81d1-7eb02706dfb0</mbid>
    <url>http://www.last.fm/music/Cher/Believe</url>
    <image size="small">http://userserve-ak.last.fm/serve/34/8674593.jpg</image>
    <image size="medium">http://userserve-ak.last.fm/serve/64/8674593.jpg</image>
    <image size="large">http://userserve-ak.last.fm/serve/126/8674593.jpg</image>
  </album>
  <toptags>
    <tag>
      <name>pop</name>
      <url>http://www.last.fm/tag/pop</url>
    </tag>
    ...
  </toptags>
  <wiki>
    <published>Sun, 27 Jul 2008 15:44:58 +0000</published>
    <summary>...</summary>
    <content>...</content>
  </wiki>
</track>

次のコードで管理できるアーティスト名と ID を取得します。

console.log(rackInfoResult.track.name);

でも今はファーストアルバムが欲しい。position="1" のアルバムを選択するにはどうすればよいですか?

4

3 に答える 3

1

わかりました、見つけました。

次のコードを使用して、正しい要素を追跡しました

for(var key in trackInfoResult.track) {
    var value = trackInfoResult.track[key];
    console.log(key + " : " + value);
}

trackInfoResult.track の背後にキーの 1 つを追加するたびに

于 2013-02-26T12:50:10.757 に答える
0

次に、この方法でtiを実行してみてください。それは私のために働いた。

スクリプトの成功関数で

    success: function(trackInfoResult){
     var x = eval('('+trackInfoResult+')');
         console.log(x);     
         console.log(x[0]);
    }

これはあなたにも役立つはずだと思います。

于 2013-02-26T12:10:31.837 に答える
0

あなたは試すことができます:

var myAlbum = trackInfoResult.track.album;
if (parseInt(myAlbum.getAttribute('position'), 10) === 1) {
    // do stuff here
}
于 2013-02-26T12:36:03.127 に答える