2014-01-31 17 views
1

我試圖通過使用IMDB的API給出其標題的電影年份,然後在標題旁邊的括號中添加年份。使用AJAX從IMDB中提取數據API

有一些基本的JS或AJAX的東西,我搞砸了。任何幫助將非常感激!

這是我的代碼:jsFiddle

HTML

<ol> 
    <li>Jaws</li> 
    <li>The Lord of the Rings</li> 
</ol> 

jQuery的

function getYear(title) 
{ 
    $.ajax({ 
     url: "http://www.imdbapi.com/?t=" + title, 
     dataType: 'jsonp', 
     success: function(data){ 
      var year = data.Year; 
     } 
    }); 

} 

$("li").each(function() { 
     var text = $(this).text(); 
     getYear(text); 
     $(this).append(" ("+year+")"); 
}); 
+0

的可能重複成功的作品【如何返回從AJAX響應調用?](http://stackoverflow.com/questions/14220321/how-to-return-the-a-a-ajax-call) – hjpotter92

+2

這是[更新的小提琴](http://jsfiddle.net/xVAbm/118/) – 2014-01-31 07:26:40

回答

1

您的代碼調用AJAX功能,但立即進行異步之前更新頁面函數返回。您需要包括更新頁面在回調到AJAX功能,這樣當數據就緒時,它執行的代碼。

我已經重新設計你的代碼是:

function getYear(title) 
{ 
    $.ajax({ 
     url: "http://www.imdbapi.com/?t=" + $(title).text(), 
     dataType: 'json', 
     success: function(data){ 
      var year = data.Year; 
      var text = $(this).text(); 
      $(title).append(" ("+year+")"); 

     } 
    }); 

} 

$("li").each(function() { 

     getYear(this); 
}); 

其中關於this fiddle

+0

謝謝,這使得總感覺現在你說這樣的。 –

+0

我越來越有「跨來源請求阻止」試圖使用該解決方案時 它似乎如果我使用本網站[OMDBapi]工作(https://www.omdbapi.com)雖然 – Gibado