1

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

1 回答 1

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);
});

哪个在这个小提琴上成功

于 2014-01-31T07:34:46.783 回答