【问题标题】:Using AJAX to Extract Data from IMDB API使用 AJAX 从 IMDB API 中提取数据
【发布时间】:2014-02-23 19:31:39
【问题描述】:

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

【问题讨论】:

标签: javascript jquery ajax imdb


【解决方案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 上成功运行

【讨论】:

  • 谢谢你,既然你这么说,这完全有道理。
  • 我在尝试使用此解决方案时遇到“跨源请求被阻止”如果我使用此站点 OMDBapi 似乎确实有效
猜你喜欢
  • 1970-01-01
  • 2016-12-04
  • 2015-06-07
  • 2016-02-16
  • 1970-01-01
  • 1970-01-01
  • 2015-02-07
  • 1970-01-01
  • 2022-11-16
相关资源
最近更新 更多