javascript - Jquery 将一个对象值数组追加到右边的 div

标签 javascript jquery html

我有一个像这样的对象数组

var TLPics = [{
   id: 2141,
   Picture: "/postimg/20181102_134013.jpg",
   userpostid: 4891
}, {
   id: 2142,
   Picture: "/postimg/20181102_134053.jpg",
   userpostid: 4891
}, {
   id: 2143,
   Picture: "/postimg/20181102_133944.jpg",
   userpostid: 4892
}]

然后我有几个数据属性为 data-id 的 div,如下所示

<div id="TLF" class="c2">
   <div id="ttimgs" class="mygalleryx lidf2" data-id="4891"> </div>
</div>
<div id="TLF" class="c2">
   <div id="ttimgs" class="mygalleryx lidf2" data-id="4892"> </div>
</div>

现在我想要实现的是过滤数组,生成的数组从图片中获取图像数据源:应用于图像,然后将图像附加到正确的 div,并使用与 div 数据相同的 userpostid -id 属性。例如 userpostid=4891 附加到数据 ID = 4891 的 dive。

到目前为止,我已经尝试了下面的代码,但我在创建不具有相同 data-id 的 div 中的图像时遇到了问题

function checkpics(e) {
   var x = parseInt(e);
   var appendTLpic = TLPics.filter(element => element.userpostid === x);
   $(".lidf2").each(function() {
      var thisid = $(this).data('id')
      $(TLPics).each(function() {
         if (thisid == this.userpostid) {
            $('[data-id="' + thisid + '"]').append('<a><img  class="userpictz lazyload imgz xp"  alt="" data-views="" data-likes="" src="' + this.Picture + '" style=" display:inline-block"/></a>');
         }
      });
   });
   appendTLpic = [];
}

最佳答案

您在这里遇到的第一个问题是您在复制 #TLF#ttimgs id 属性时 必须 是唯一的。将它们更改为类。

然后你可以遍历每个 .ttimgs 元素和 find() 数组中的相关对象,通过匹配 data-id 属性到 userpostid 属性,然后附加新的 img。试试这个:

var TLPics = [{
  id: 2141,
  Picture: "/postimg/20181102_134013.jpg",
  userpostid: 4891
}, {
  id: 2142,
  Picture: "/postimg/20181102_134053.jpg",
  userpostid: 4891
}, {
  id: 2143,
  Picture: "/postimg/20181102_133944.jpg",
  userpostid: 4892
}]

$('.ttimgs').each(function() {
  var src = TLPics.find(x => x.userpostid === $(this).data('id')).Picture;
  $(this).append(`<img class="userpictz lazyload imgz xp" alt="" data-views="" data-likes="" src="${src}" />`);
});
.userpictz { 
  display: inline-block; 
  
  /* just for this demo... */
  border: 1px solid #C00;
  width: 30px;
  height: 30px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="TLF c2">
  <div class="ttimgs mygalleryx lidf2" data-id="4891"></div>
</div>
<div class="TLF c2">
  <div class="ttimgs mygalleryx lidf2" data-id="4892"></div>
</div>

关于javascript - Jquery 将一个对象值数组追加到右边的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54512303/

相关文章:

javascript - javascript/jQuery 过滤器的默认选项隐藏所有表行

javascript - 滚动传递时如何隐藏div/元素?

javascript - HTML5游戏——如何防止变量被修改

javascript - 在当前模式上按下按钮时如何触发另一个模式?

javascript - phonegap是否支持html5音频标签播放原生音频文件?

javascript - 您可以提交包含一系列文本输入的表单吗?

javascript - jQuery 函数从另一个 HTML 表创建 HTML 表

javascript - 在 RequireJS 中使用相同的配置文件在并行目录下优化/构建模块

javascript - CI 和 Angular4 : Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response

javascript - 使用云代码从 parse.com 检索类