【问题标题】:For Each Loop append div对于每个循环附加 div
【发布时间】:2013-03-20 11:21:48
【问题描述】:

我正在尝试使用 for 循环从 json 文件中加载产品。对于我想要有一个 div 的每个产品(一个 div 中的每个项目)。我加载没有问题,但不知何故,第一项数据看起来像是与下一项连接。我试图通过网络解决方案,我得到的最接近的是与父母有关的事情。 (我还是 jQuery 的新手)。每个项目的 div 数量正常工作。

if($.isArray(item.product_Shorts)){
    $.each(item.product_Shorts, function(i, item){
        $('#CasualItems').append("<div class='title'>");
        $('.title').append(item.product_ID);
    });
}

目前我有两种产品,一种 id 为 3,另一种为 4。(为此,我显示的是 ID 而不是标题。谢谢。

【问题讨论】:

  • 顺便说一句,你实际上并没有在你的帖子中提出问题......我想我们都假设你的问题......
  • @Dav,我认为 Jesse 有答案。当您将您的层称为 $(".title") 时,product_id(或其他)会添加到每个层,并带有“title”类。

标签: jquery json html append


【解决方案1】:

在第一个循环中,它附加 div 并附加产品 ID 3(到所有 'title' 类)。在第二遍中,它附加一个 div,然后添加产品 ID 4(再次添加到所有 'title' 类,现在有 2 个)。

只需这样做:

$('#CasualItems').append("<div class='title'>").append(item.product_ID);

【讨论】:

  • @Pete 我想提高这里发布的答案的质量,如果我也提高声誉,没关系。
【解决方案2】:

试试这个:

if($.isArray(item.product_Shorts)){
    $.each(item.product_Shorts, function(i, item){
        $('#CasualItems').append("<div class='title'>").html(item.product_ID);
    });
}

【讨论】:

  • 我认为我没有正确解释。我需要第二个项目的 div(第二个循环)不影响第一个项目的 div 中的第一个先前数据。我想要的结果应该是这样的:
    3
    4
  • @dav 至少你可以给 +1,这个解决方案比你标记为答案的解决方案更优雅。
  • 我想我只能对一个问题 +1,并且 will.i.am 之前会回复一个可行的解决方案。
【解决方案3】:

试试这个,为每个 div 使用唯一的 id

if($.isArray(item.product_Shorts)){
    $.each(item.product_Shorts, function(i, item){
        $('#CasualItems').append("<div id='title'" + (i + 1) + ">");
        $('#title' + (i + 1)).append(item.product_ID);
    });
}

【讨论】:

    【解决方案4】:

    这是因为您将它添加到每个.title div。尝试通过id 或索引来完成。

    $('.title').eq(i).append(item.product_ID);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-22
      • 2020-05-11
      • 1970-01-01
      • 1970-01-01
      • 2018-02-12
      • 2018-08-14
      • 2011-07-15
      相关资源
      最近更新 更多