2011-02-28 143 views
0

嗨,大家好,请你告诉我如何访问audioCollection对象内的内容?jQuery访问对象值

我使用Echonest jQuery插件使用jQuery模板

https://github.com/Rodeoclash/Echonest-jQuery-Plugin/blob/master/scripts/echonest.js

我去萤火虫和类型化console.log(audioCollection)和我得到ReferenceError: audioCollection is not defined。不知道我是否做得对。

echonest.artist(artist).audio(function(audioCollection) { 

$('#blog-page').find('.post').append(audioCollection.to_html('<p class="song-url" style="display:none;">${url}</p>')); 
//appends url variable to html inside of audioCollection 

var testing = audioCollection; //returns [Object object] 
}); 

谢谢!

+0

你究竟在哪里放了'console.log(audioCollection)'? – 2011-02-28 21:19:05

+0

你在使用一些插件吗?如果是,哪一个? 'audio'不是标准的jQuery函数。你必须提供更多信息。 – 2011-02-28 21:19:31

+0

'audioCollection'只存在于其封闭函数的范围内。这就是为什么你无法使用Firebug从全球范围获得它的价值。 – 2011-02-28 21:22:19

回答

2

我不熟悉的对象,但你可以尝试使用我的dump()功能,看看里面有什么..

echonest.artist(artist).audio(function(audioCollection) { 

    $('#blog-page').find('.post').append(audioCollection.to_html('<p class="song-url" style="display:none;">${url}</p>')); 
    //appends url variable to html inside of audioCollection 

    var testing = audioCollection; //returns [Object object] 
    alert(dump(testing));   
}); 

function dump(arr,level) { 
    var dumped_text = ""; 
    if(!level) level = 0; 

    //The padding given at the beginning of the line. 
    var level_padding = ""; 
    for(var j=0;j<level+1;j++) level_padding += " "; 

    if(typeof(arr) == 'object') { //Array/Hashes/Objects 
     for(var item in arr) { 
      var value = arr[item]; 

      if(typeof(value) == 'object') { //If it is an array, 
       dumped_text += level_padding + "'" + item + "' ...\n"; 
       dumped_text += dump(value,level+1); 
      } else { 
       dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n"; 
      } 
     } 
    } else { //Stings/Chars/Numbers etc. 
     dumped_text = "===>"+arr+"<===("+typeof(arr)+")"; 
    } 
    return dumped_text; 
} 

UPDATE

访问你的价值观,你可以做这样的事情

var songs = testing.audio; 
for (var x=0; x<songs.length; x++){ 
    alert(songs[x].title); 
} 
+0

嗨,它返回这个:http://sharepaste.com/p/iyKbGL我想知道如何访问值。我很感激任何关于这个主题的阅读 – Ronal 2011-02-28 21:34:21

1

我只想要一个原始视图的对象,我建议广泛使用JSON.stringify()

echonest.artist(artist).audio(function(audioCollection) { 
    console.log(JSON.stringify(audioCollection)); 

    // Appends url variable to html inside of audioCollection. 
    $('#blog-page').find('.post').append(audioCollection.to_html(
     '<p class="song-url" style="display:none;">${url}</p>')); 
});