2011-04-21 85 views
2

我有兩個json文件,我想對他們做一個ajax調用。如何使用jquery從2個json文件加載數據?

$.getJSON('http://www.example.com/contest_media', function(data) { do something }); 
$.getJSON('http://www.example.com/contest', function(data) { do something }); 

我希望它成爲這樣的:

$.getJSON(['http://www.example.com/contest_media', 'http://www.example.com/contest'], function(data) { do something}); 

我也使用$.each(data, function(i,item) {},所以我不能做:

$.getJSON('http://www.example.com/contests', function(data) { 
$.each(data, function(i,item) { 
    do something 
    $.getJSON('http://www.example.com/contest_media', function(data) {do something }); 
} 
}); 

這裏contest_media不會保持跟蹤contests

我基本上想在同一個$.each中使用來自兩個json文件的數據。有任何想法嗎?

回答

2

我相信這可以用$.when完成。在你的情況你的代碼可能會是這個樣子......

$.when(
    $.getJSON('http://www.example.com/contest_media'), 
    $.getJSON('http://www.example.com/contest') 
).done(function(contestMedia, contest) { 

    // do something  
    // contestMedia = [ "success", statusText, jqXHR ] 
    // contest = [ "success", statusText, jqXHR ] 

    // response data can be gotten with contest[2].responseText 

}); 

jQuery doc page for $.when

注意,這需要jQuery的1.5版本。

+0

你的信念是正確的:) – guillem 2017-06-10 15:10:30

0

你不能只窩在它嗎?我想你無論如何都需要依賴來自兩者的數據。

$.getJSON('http://example.com/contest_media', function(data) { 
// do basic stuff 
$.getJSON('http://example.com/contest', function(data) { 
    // do more stuff now that you have both pieces of data 
}); 
}); 
+0

我試過了,但是我爲'contest_media'使用了'$ .each(data,function(i,item){}'...並且它會保持跟蹤'競賽' – Patrioticcow 2011-04-21 22:31:17

+0

可能想要發佈 – Owen 2011-04-21 22:53:59

+0

我基本上想把兩個json文件的值都用到一個html中 – Patrioticcow 2011-04-21 23:05:25