【问题标题】:How do I create Rows and Columns in jQuery after pulling data from a Share Point List从共享点列表中提取数据后,如何在 jQuery 中创建行和列
【发布时间】:2019-09-12 22:42:09
【问题描述】:

我在 JavaScript 中创建了一个包含 7 个类别的手风琴,我还从共享点列表中提取数据并按类别过滤项目。在按类别过滤项目并将其附加到其各自的类别面板后,我想创建 4 列以及从列表中提取的项目所需的任何行。附上所需的最终结果。

附上所需的最终结果。 Accordion Desired Result

$(document).ready(function () {
  $.ajax({
    url: "http://bc-net/_api/web/lists/GetByTitle('specialDiscounts')/items",
    method: 'GET',
    headers: {
      'Accept': 'application/json; odata=verbose'
    },
    success: function (data) {
      var items = data.d.results;
      console.log(items);

       var auto = $('#automotive');
       var entertainment = $('#entertainment');
       var healthBeauty = $('#healthBeauty');
       var travel = $('#travel');
       var electronics= $('#electronics');
       var services= $('#services');
       var housing= $('#housing');


      for (var j = 0; j < items.length; j++) {

       var panelsContent ='<div class="row animated fadeInUp">' +
                        '<div class="col-md-4">' +
                        '<div class="card-body card-body-cascade text-center">' +
                        '<a href=" ' + items[j].Link.Url + '" target = _blank> <h4 class="card-title my-4"><strong>' + items[j].Title +
                        '</strong></h4></a><p class="card-text">' + items[j].Description + '</p>'                   



        // branching logic,
        // append the <p> in different places based on
        // different possible Category values

        switch (items[j].Category) {
            case 'Automotive':
                auto.append(panelsContent);
                break;
            case 'Entertainment':
                entertainment.append(panelsContent);
                break;
            case 'Health and Beauty':
                healthBeauty.append(panelsContent);
                break;
             case 'Travel':
                travel.append(panelsContent);
                break;
             case 'Electronics':
                electronics.append(panelsContent);
                break;
            case 'Services':
                services.append(panelsContent);
                break;
             case 'Housing':
                housing.append(panelsContent);
                break;
         default:
                break;
                }
    }

      },
    error: function (data) {
      alert('Error: ' + data);
    }
  }) // End Service Icons  //End Service Icons
}) // End ready function 

这是一段 HTML

<div id="housing" class="accordion-content list-reset leading-normal px-8 py-4 hidden">
<!--Services Content Injected--> 
</div>

这就是我得到的 This is what I am getting

Console Results

【问题讨论】:

  • 我假设您正在使用引导程序,有 col-md-4 的证据。基于引导程序的有限知识,但看到这个bootstrap grid examples,您实际上是否应该使用 col-md-3 并且每行中有 4 个?似乎你得到的是每行一个 col-md-4,基本上是 1/3 宽度。
  • 这是一个 jsfiddle。确保调整输出屏幕的大小以查看 col 类生效。 https://jsfiddle.net/q31fd4nj/1/
  • @sourkrause 我在控制台上得到的是 4 行,即使我更改了你提到的引导类,所以我相信问题出在循环上。

标签: javascript jquery multiple-columns rows


【解决方案1】:

这可能不是最有效的方法,但它应该有效或接近。基本上,由于您的项目列表可以是任何类别,因此您可以在循环时为每个类别构建内容,并且在完成之前不要将该内容附加到手风琴部分。

$(document).ready(function () {
$.ajax({
    url: "http://bc-net/_api/web/lists/GetByTitle('specialDiscounts')/items",
    method: 'GET',
    headers: {
        'Accept': 'application/json; odata=verbose'
    },
    success: function (data) {
        var items = data.d.results;
        console.log(items);

        var auto = $('#automotive');
        var entertainment = $('#entertainment');
        var healthBeauty = $('#healthBeauty');
        var travel = $('#travel');
        var electronics = $('#electronics');
        var services = $('#services');
        var housing = $('#housing');

        var autoContent = $('<div class="row animated fadeInUp"></div>');
        var entertainmentContent = $('<div class="row animated fadeInUp"></div>');
        var healthBeautyContent = $('<div class="row animated fadeInUp"></div>');
        var travelContent = $('<div class="row animated fadeInUp"></div>');
        var electronicsContent = $('<div class="row animated fadeInUp"></div>');
        var servicesContent = $('<div class="row animated fadeInUp"></div>');
        var housingContent = $('<div class="row animated fadeInUp"></div>');


        var itemContent;
        for (var j = 0; j < items.length; j++) {

            itemContent = '<div class="col-md-3">' +
                '<div class="card-body card-body-cascade text-center">' +
                '<a href=" ' + items[j].Link.Url + '" target = _blank> <h4 class="card-title my-4"><strong>' + items[j].Title +
                '</strong></h4></a><p class="card-text">' + items[j].Description + '</p></div></div>';

            // branching logic,
            // append the <p> in different places based on
            // different possible Category values

            switch (items[j].Category) {
                case 'Automotive':
                    autoContent.append(itemContent);
                    break;
                case 'Entertainment':
                    entertainmentContent.append(itemContent);
                    break;
                case 'Health and Beauty':
                    healthBeautyContent.append(itemContent);
                    break;
                case 'Travel':
                    travelContent.append(itemContent);
                    break;
                case 'Electronics':
                    electronicsContent.append(itemContent);
                    break;
                case 'Services':
                    servicesContent.append(itemContent);
                    break;
                case 'Housing':
                    housingContent.append(itemContent);
                    break;
                default:
                    break;
            }
        }

        auto.append(autoContent);
        entertainment.append(entertainmentContent);
        healthBeauty.append(healthBeautyContent);
        travel.append(travelContent);
        electronics.append(electronicsContent);
        services.append(servicesContent);
        housing.append(housingContent);

    },
    error: function (data) {
        alert('Error: ' + data);
    }
}); // End Service Icons  //End Service Icons
}); // End ready function 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 2014-07-02
    相关资源
    最近更新 更多