2013-02-26 108 views
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); 

但是現在我想擁有第一張專輯。如何選擇位置=「1」的專輯?

+0

你嘗試'rackInfoResult.track.album'背後的關鍵因素之一的時間? – adeneo 2013-02-26 12:02:38

+0

是的,這給了我[對象對象]作爲結果 – Kiwi 2013-02-26 12:24:57

回答

0

然後,你應該嘗試這樣做。它爲我工作。

在你的腳本

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

成功函數

我認爲這應該爲你工作也。

+0

拋出:undefined – Kiwi 2013-02-26 12:27:44

+0

我修改了代碼。請告訴我在這兩種情況下的輸出。我現在添加了。 – 2013-02-26 12:34:40

+0

拋出:意外的標識符 – Kiwi 2013-02-26 12:38:13

0

你可以嘗試:

var myAlbum = trackInfoResult.track.album; 
if (parseInt(myAlbum.getAttribute('position'), 10) === 1) { 
    // do stuff here 
} 
1

好吧,我發現它。

我用下面的代碼來追查權元素

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

,並添加每次trackInfoResult.track