只看到jQuery中最后一次.each()迭代的结果

时间:2011-08-12 17:09:51

标签: jquery

我正在尝试迭代JSON文件中的一些内容,但我无法让each()做我想做的事情。这就是我所拥有的:

$.each(response.data.items, function(i,data)
{
var id=data.id; 
var results="<div><iframe width='320' height = '190' src='http://www.example.com/"+id+"' frameborder='0' type='text/html'></iframe></div>";

$("#resultsOut").html(results);
});

目前,唯一正在输出的HTML是

<div><iframe width='320' height = '190' src='http://www.example.com/"+id+"' frameborder='0' type='text/html'></iframe></div>

其中id是JSON中出现的最后一个id。我如何更改这一点,以便我发现每个ID发生一次HTML阻止?

3 个答案:

答案 0 :(得分:1)

您可能需要

$(results).appendTo("#resultsOut");

而不是

$("#resultsOut").html(results)

因为.html() 用新HTML替换所选元素的内容,而不是添加到它。

答案 1 :(得分:1)

您每次都会覆盖$("#resultsOut")的内部HTML。做这样的事情:

$.each(response.data.items, function(i,data)
{
    var id=data.id; 
    var results="<div><iframe width='320' height = '190' src='http://www.example.com/"+id+"'      frameborder='0' type='text/html'></iframe></div>";

    $("#resultsOut").append($(results));
});

答案 2 :(得分:0)

您只看到最后一个ID,因为您每次迭代都会覆盖以前的HTML。尝试使用.append():

$.each(response.data.items, function(i,data)
{
var id=data.id; 
var results="<div><iframe width='320' height = '190' src='http://www.example.com/"+id+"' frameborder='0' type='text/html'></iframe></div>";

$("#resultsOut").append(results);
});