javascript - 如何将数组属性写入 DOM 元素数组
问题描述
我正在尝试将包含产品的列表添加到 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>
推荐阅读
- reactjs - 如何使用 MomentJS 将自定义日期设置为 react-datepicker 的 DatePicker?
- javascript - Immutable.fromJS() 没有将我的 JSON 深度转换为不可变对象
- android - 显示由 HttpsURLConnection 发送的实际原始数据 + HTTPS 标头
- r - 循环遍历列并将字段自动拆分到新列
- react-native - 在 react-native-video 中使用 seek 的意外行为
- android - 缩放图像在某些设备中不起作用
- java - JSONObject 无法转换为 JSONArray , jsonObject.getJSONArray(KEY_DATA) 不起作用
- javascript - 在数组中更改名称 JSON
- python - 基于正则表达式 pandas 更新字段格式
- python - Keras Functional Api, InvalidArgumentError: input 1 should contain 3 elements, but got 2