2012-09-08 245 views
0

我有問題循環瀏覽json。問題循環Json

在下面的代碼中,循環的URL不符合要求,並且警報中的ID始終爲3.有人能告訴我我在做什麼錯嗎?

var urls = ["http://soundcloud.com/disclosuremusic/sets/the-face-ep-1", "http://soundcloud.com/skibsthekid/sets/the-pink-slip", "http://soundcloud.com/disclosuremusic/sets/the-face-ep-1"]; 

for (var i = 0, url; url = urls[i]; i++) { 
     console.log(i); 

    $.getJSON('http://api.soundcloud.com/resolve?url=' + url + '&format=json&consumer_key=' + consumer_key, function(playlist) { 
     alert(i + playlist.title); 
    }); 
} 
+0

for(var i = 0,url; url == urls [i]; i ++){ – Gautam3164

回答

2
$.each(urls,function(key,value) { 
     console.log(value); 

    $.getJSON('http://api.soundcloud.com/resolve?url=' + value + '&format=json&consumer_key=' + consumer_key, function(playlist) { 
     alert(i + playlist.title); 
    }); 
}); 
+0

Cheers mate!這正是我需要的。 –

1

是的,在警報的ID將永遠是3,你的情況 - 但是因爲JavaScript架構。

$.getJSON()方法,這是$.get({ format : 'JSON' })的簡寫,行爲如下:

  • 嘿嘿的javascript,請你給我的url的JSON的內容?
  • 是的男人,但我有一些東西要做,我不能等到服務器回答 - 請告訴我你要我用這些數據執行什麼,並將其包裝在一個函數中。與此同時,我將繼續處理腳本,因爲我需要淡入淡出某些div;
  • 好的JavaScript,這裏是:function(playlist){ ... }

這意味着你的function(playlist){ ... }回調執行方式for循環結束後 - 這就是爲什麼i總是3.

該如何解決?您需要一個關閉讓您的回調知道在當前迭代i - 主題不簡單,所以採取輝煌John Resig's interactive lecture一下。