首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何才能动态地将3个html元素附加到.col-3 div中?

如何才能动态地将3个html元素附加到.col-3 div中?
EN

Stack Overflow用户
提问于 2021-06-01 03:00:08
回答 1查看 40关注 0票数 0

我得到了我在js中创建的函数addProducts,它是从产品的对象中获取细节。

代码语言:javascript
复制
function addProducts(product) {
let body = '';
body += "<div class='card' style='width:10rem;'";
body += "<img class='card-img-top' " + "src=" + product.img + " alt='card image'>";
body += "<div class='card-body'>";
body += "<h5 class='card-title'>" + product.name + "</h5>";
body += "<p class='card-text'>" + product.description + "</p>";
body += "<a href='#' class='btn btn-primary'>" + "معرفة المزيد" + "</a>";

return body;

}

然而,这是通过一个.card容器发布的,该容器只详细说明了一个产品。我怎么能只添加3个像这样的产品,而是放在.col-3的div中呢?

代码语言:javascript
复制
<div class="row">
                        <div class="col-sm">
//Product 1
//Product 2
//Product 3
                        </div>
                        <div class="col-sm">
//Product 1
//Product 2
//Product 3
                        </div>
                        <div class="col-sm">
//Product 1
//Product 2
//Product 3
                        </div>
            </div>

我添加了id为# products -list的产品出现在我的容器中,并使用了一个在'nodeSelect‘事件上触发的for循环。

代码语言:javascript
复制
let $productsList = $('#products-list');

onNodeSelected: function(event, data) {
    var products = '';


    for (let i = 0; i < data.products.length; i++) {
        products += addProducts(data.products[i]);
    }


    $productsList.html(products);
    $productsList.show();
}
EN

回答 1

Stack Overflow用户

发布于 2021-06-01 03:23:33

考虑下面的例子。

代码语言:javascript
复制
function addProducts(product) {
  // Create Card
  var card = $("<div>", {
    class: "card"
  }).css({
    width: "10rem"
  });
  $("<img>", {
    class: "card-img-top",
    src: product.img,
    alt: "Card Image"
  }).appendTo(card);
  var body = $("<div>", {
    class: "card-body"
  }).appendTo(card);
  $("<h5>", {
    class: "card-title"
  }).html(product.name).appendTo(body);
  $("<p>", {
    class: "card-text"
  }).html(product.description).appendTo(body);
  $("<a>", {
    href: "#",
    class: "btn btn-primary"
  }).html("معرفة المزيد").appendTo(body);
  // Return jQuery Object of populated Card
  return card;
}
// Define List as jQuery Object
var $productsList = $('#products-list');

// Event Action
onNodeSelected: function(event, data) {
  var products;
  // Clear current Product List
  $productsList.html("");
  // Iterate Object Data
  $.each(data.products, function(i, el)) {
    // i for the Index number and el for the object elements
    if (i % 3 == 0) {
      // use Modulus operator to wrap 3 items
      $("<div>", {
        class: "col-sm"
      }).appendTo($productList);
    }
    $(".col-sm:last", $productList).append(addProduct(el));
  }
  $productsList.show();
}

如果没有适当的示例,我无法测试代码。你将不得不自己测试它。

查看更多关于模运算符的信息:https://www.w3schools.com/js/js_arithmetic.asp

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67779047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档