weixin_33682719 2017-09-04 09:44
浏览 16

循环追加过多项目

I asked a question on looping and appending. The answer was almost right, yet it seems to append way to many.

The desired effect is as follow -

<div>
<img class="img1">
<img class="img2">
</div>

<div>
<img class="img2">
<img class="img3">
</div>

<div>
<img class="img4">
<img class="img5">
</div>

This is the result I am getting -

Screen of result

I am using json and ajax, but it might complicate things. Basically I just need to take items from an array, split them in two and put each pair in a div.

var counter = -1,
mainTitle,
imgTitle,
imgLink,
slideIndex;

function populateCars(carId){
  $.ajax({
    type : 'GET',
    url : 'json/data.json',
    data : {
      get_param: 'value'
    },
    dataType : 'json',
    success : function(data){
      mainTitle = data.carInfo.title;
      imgTitle = data.carInfo.carName;
      $('.gallery-slider').empty();
      $('.gallery-sub-slider').empty();

      $('#gallery-head').html(mainTitle);
      $('#gallery-car-type').html(imgTitle);

      $.each(data.carImages, function(i){
        imgLink = data.carImages[i].imgLink;

        $('.gallery-slider').append('<div><img src="' + imgLink + '" class="gallery-img" data-tag="' + i + '"></div>');
        
      });

      var divCount = Math.ceil(data.carImages.length / 2);
      var firstImgIndex;
      var secondImgIndex;
      var firstImg;
      var secondImg;
      
      for (var i = 0; i < divCount; i++) {
        firstImgIndex = i*2;
        secondImgIndex = firstImgIndex + 1;
      
        firstImg = data.carImages[firstImgIndex];
        secondImg = data.carImages[secondImgIndex];
        
        $('.gallery-sub-slider').append('<div class="sub-gallery-item" data-index="' + i + '"></div>');
        $('.sub-gallery-item').append('<img src="' + firstImg.imgLink + '" class="sub-gallery-img" data-tag="' + i + '"><img src="' + secondImg.imgLink + '" class="sub-gallery-img">');

      }

    }
  });
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
                <div class="gallery-sub-slider">

                </div>

</div>
  • 写回答

2条回答 默认 最新

  • weixin_33716557 2017-09-04 09:59
    关注

    In each iteration you create new ".sub-gallery-item".

    Than you select all .sub-gallery-item in whole page and you add 2 new img elments into each of them. I suppose you want to add them just into the new one.

    Line causing the problem are:

    $('.gallery-sub-slider').append('<div class="sub-gallery-item" data-index="' + i + '"></div>');
    $('.sub-gallery-item').append('<img src="' + firstImg.imgLink + '" class="sub-gallery-img" data-tag="' + i + '"><img src="' + secondImg.imgLink + '" class="sub-gallery-img">');
    

    You can simplify it:

    $('.gallery-sub-slider').append('<div class="sub-gallery-item" data-index="' + i + '"><img src="' + firstImg.imgLink + '" class="sub-gallery-img" data-tag="' + i + '"><img src="' + secondImg.imgLink + '" class="sub-gallery-img"></div>');
    
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!