我正在尝试使用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 :(得分: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);
});
上成功运作