javascript - 如何将数组属性写入 DOM 元素数组

标签 javascript arrays

我正在尝试将包含产品的列表添加到 HTML 页面。我试图用对象映射数组并将它们的属性分配给 HTML 元素数组。我不知道如何想出这个。

const productList = [{
    photo: '../images/products/pizza/DSC_8740-002-Pitstsa-4-syra.jpg',
    title: '4 сыра',
    descriptiom: [
        'more',
        'description'
    ],
    price: 125,
    weight: 520,
}, {
    photo: '../images/products/pizza/DhZBDqqwZzgTSYudncCZVQjOHHfQh9cs.jpg',
    title: 'some title',
    description: [
      'some',
      'description'
    ],
    price: 140,
    weight: 850,
}]

const products = document.querySelectorAll('.product')
const productItems = productList.map(element => {
   //please help here
})
<div class="product-list">
    <div class="product">
      <img class="product__image" src="../images/products/pizza/chetyre-syra.jpg" alt="">
      <p class="product__name">Product Name</p>
      <p class="product__description">Product Description</p>
      <p class="product__price">100.-</p>
      <button class="product__btn"><i class="fas fa-plus"></i></button>
    </div>
    <div class="product">
      <p class="product__name">Product Name</p>
      <p class="product__description">Product Description</p>
      <p class="product__price">100.-</p>
      <button class="product__btn"><i class="fas fa-plus"></i></button>
    </div>

最佳答案

试试这个。

function loadProducts() {
    const productList = [
        {
        photo: "../images/products/pizza/DSC_8740-002-Pitstsa-4-syra.jpg",
        title: "4 сыра",
        description: ["more", "description"],
        price: 125,
        weight: 520
        },
        {
        photo:
            "../images/products/pizza/DhZBDqqwZzgTSYudncCZVQjOHHfQh9cs.jpg",
        title: "some title",
        description: ["some", "description"],
        price: 140,
        weight: 850
        }
    ];

    const productItems = productList.map(element => {
        let elem = document.createElement("div");
        elem.setAttribute("class", "product");
        let productItem = `
            <img class="product__image" src="${element.photo}" alt="">
            <p class="product__name">${element.title}</p>
            <p class="product__description">${element.description.join( " " )}</p>
            <p class="product__price">${element.price}</p>
            <button class="product__btn"><i class="fas fa-plus"></i></button>
            `;
        elem.innerHTML = productItem;
        return elem;
    });

    let container = document.querySelector(".product-list");
    for (const product of productItems) {
        container.append(product);
    }
}
loadProducts();
 <div class="product-list"></div>

关于javascript - 如何将数组属性写入 DOM 元素数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59811754/

相关文章:

javascript - 按多个属性对对象数组进行排序

javascript - ember.js - 使用可选参数和默认模型定义路由

javascript - 合并 JavaScript 数组中的重复项

javascript - 更新 Meteor 中的嵌套数组

c - 重置字符数组值

JavaScript 仅打印数组的最后一个元素

javascript - 使用异步执行上下文为 Office.js Javascript Word 加载项添加子例程

javascript - jQuery/Javascript 多数组组合

javascript - 我可以在ajax运行时刷新页面而不杀死它吗?

javascript - 将图像居中并缩放高度/宽度以适合 flexbox 父级?