【发布时间】:2015-05-25 01:42:08
【问题描述】:
我已尝试搜索此内容,但找不到任何适合我所面临问题的答案。 我最近开始玩 JQuery,所以这一定很愚蠢。
我有一个在整个页面中重复出现的 div (.movie),每个都有一个特定的 id(例如#titanic)
标题、年份和运行时间的信息来自函数内部的 JSONP。因此,在每个 div 中,我调用了这样的函数并定义了要搜索的电影。
<div class="movie" id="tt0050083">
<script>
id = tt0050083;
getinfo();
</script>
<p class="title"></p>
<p class="year"></p>
<p class="runtime"></p>
</div>
问题是,它只将标题、年份和运行时间附加到最后一个 div,而不是全部。它获取不同电影的所有不同信息,但所有内容都附加到最后一个 div。
function getinfo(){
$.ajax({
url:"http://www.myapifilms.com/imdb?format=JSONP&idIMDB="+id,
type:'GET',
dataType:'JSONP',
callback: 'callback',
success: function(data, text, xhqr){
$('#'+id).append( '<p class="title">' + data.title + '</p>' );
$('#'+id).append( '<p class="year">' + data.year + '</p>' );
$('#'+id).append( '<p class="runtime">' + data.runtime + '</p>' );
}
});
}
唯一有效的 id 被认为是我声明的最后一个,即使它每次运行 getinfo() 时都会搜索不同的电影,但它只是附加到错误的位置。
打赌这很愚蠢,但我已经敲了几个小时的头了 谢谢!
【问题讨论】:
-
我相信成功函数是问题所在......如果你发布你的json输出的一部分会更好
-
您不需要在每个 div 中添加内联 javascript。取而代之的是使用 jqueries 来循环遍历成功回调中的电影。如何做到这一点我们无法判断,因为您没有给出接收到的 json 输出的示例。
-
看起来只有一个 id 被请求并返回。如果返回数组,
data.title等将不起作用。你必须做类似data[0].title的事情。
标签: javascript jquery html css append