使用AJAX从IMDB API中提取数据

时间:2014-01-31 07:12:48

标签: javascript jquery ajax imdb

我正在尝试使用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+")");
});

1 个答案:

答案 0 :(得分: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

上成功运作