javascript - 如何以有限的迭代次数执行 $.each 循环

标签 javascript jquery html ajax twitter-bootstrap

我正在努力显示各种属性及其图像和详细信息,这些属性来自 AJAX 响应。但问题是, slider 有许多幻灯片,每张幻灯片有 4 li

当我用 slider 附加结果 li 时,它将在第一张幻灯片中附加所有结果 li

所以现在我想附加这些li(s),仅使用单张幻灯片等等

这是我的 slider 代码

    <div class="work_carousel slide" id="myCarousel">
        <div class="carousel-inner">
            <div class="item active">//here is first slide which have contains some dummy content
                    <ul class="thumbnails" id="work_property">
                        <li class="span3" >
                            <div class="thumbnail">
                                <a href="#"><img src="http://placehold.it/360x240" alt=""></a>
                            </div>
                            <div class="caption">
                                <h4>Property Name</h4>
                        <p>Property Description</p>

                            </div>
                        </li>
                        <li class="span3">
                            <div class="thumbnail">
                                <a href="#"><img src="http://placehold.it/360x240" alt=""></a>
                            </div>
                            <div class="caption">
                                <h4>Property Name</h4>
                        <p>Property Description</p>

                            </div>
                        </li>
                        <li class="span3">
                            <div class="thumbnail">
                                <a href="#"><img src="http://placehold.it/360x240" alt=""></a>
                            </div>
                            <div class="caption">
                                <h4>Property Name</h4>
                        <p>Property Description</p>

                            </div>
                        </li>
                        <li class="span3">
                            <div class="thumbnail">
                                <a href="#"><img src="http://placehold.it/360x240" alt=""></a>
                            </div>
                            <div class="caption">
                                <h4>Property Name</h4>
                        <p>Property Description</p>

                            </div>
                        </li>

                    </ul>
              </div>
            <div class="item">//here is second slide which have contains some dummy content
                    <ul class="thumbnails">
                        <li class="span3">
                            <div class="thumbnail">
                                <a href="#"><img src="http://placehold.it/360x240" alt=""></a>
                            </div>
                            <div class="caption">
                                <h4>Property Name</h4>
                        <p>Property Description</p>

                            </div>

                        </li>
                        </ul></div>

        </div>

        <div class="control-box" style="margin-bottom: 2em;">                            
            <a data-slide="prev" href="#myCarousel" class="carousel-control left">‹</a>
            <a data-slide="next" href="#myCarousel" class="carousel-control right">›</a>
        </div>

    </div>

</div>      
</div>
</div>

这是我的 AJAX 响应

jQuery.ajax({
           type:'POST',
           url:'<?php echo base_url("site/landing/get_work_places"); ?>',
           data:{ country_name:country },
           dataType: 'json', 

           success:function(data)
           {

                     var ParsedObject = JSON.stringify(data);  

                     var json = $.parseJSON(ParsedObject);

               if (json=="")
               {

                      alert("no results found");
               }else
               {

                   $.each(json, function(key, data) 
                     {

                          var product_id=data.product_id;
                          var product_name=data.product_title;

                         var product_image=data.product_image;


                         $("#work_property").append('<li class="span3"><div class="thumbnail"><a href="<?php echo base_url('rental'); ?>/'+product_id+'"><img src="'+product_image+'" alt=""></a></div><div class="caption"><h4>'+product_name+'</h4>  <p>Property Description</p></div></li>');



                      });
              }
           }
          });

这是带有 ajax 响应附加的结果 slider

enter image description here

最佳答案

您可以在追加后使用 slicewrapAll 的组合将 4 个 li 包装在 ul 和 .item div 中到页面

$.each(json, function(key, data) {
  var product_id = data.product_id;
  var product_name = data.product_title;
  var product_image = data.product_image;
  $("#work_property").append('<li class="span3"><div class="thumbnail"><a href="<?php echo base_url('
    rental '); ?>/' + product_id + '"><img src="' + product_image + '" alt=""></a></div><div class="caption"><h4>' + product_name + '</h4>  <p>Property Description</p></div></li>');
});

for (i = 0; i <= $('.span3').length / 4; i++) {
  $('.span3').slice(i * 4, (i + 1) * 4).wrapAll('<div class="item active"><ul class="thumbnails">');
}

演示:https://jsfiddle.net/qv9r7o2d/1/

注意:您可能需要将列表项附加到 .carousel-inner div

$(".carousel-inner").append('<li class="span3"><div class="thumbnail"><a href="<?php echo base_url('rental'); ?>/'+product_id+'"><img src="'+product_image+'" alt=""></a></div><div class="caption"><h4>'+product_name+'</h4>  <p>Property Description</p></div></li>');

关于javascript - 如何以有限的迭代次数执行 $.each 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43511309/

相关文章:

javascript - 如何将关闭按钮放置在弹出框的末尾

php - 将报告打印到纸上

javascript - 尝试使用php函数生成的随机值自动生成QR码

javascript - 根据要素类型(属性)控制图层图标

javascript - 使用网络摄像头捕捉图像

javascript - easyzoom jquery 插件出现问题

javascript - 如何通过更改文件的 Office Open XML 表示形式来修改 Word 文档的内容?

javascript - 如何关闭 Accordion 菜单的打开部分?

javascript - 输入元素的值在 Jquery 中无法正常工作

javascript - PHP a href echo with span 无法正常运行