我有3张卡,我想把各自的标题,图像等每张卡。
如何访问对象的每个位置并设置卡上的值。
我试着比较id,但它不会总是相同的id。所以我怎么才能实现这一点,我感谢你的帮助。
<div class="row">
<div class="column">
<div class="card">
<h3 id="title">Card 1</h3>
<p>Some text</p>
<p>Some text</p>
</div>
</div>
<div class="column">
<div class="card">
<h3>Card 2</h3>
<p>Some text</p>
<p>Some text</p>
</div>
</div>
<div class="column">
<div class="card">
<h3>Card 3</h3>
<p>Some text</p>
<p>Some text</p>
</div>
</div>
</div>
<script>
const jsonArr = '[{"product_id": 1,"product_name": "Product 1","product_image": "product1.jpg","product_price": 19.99},{"product_id": 2,"product_name": "Product 2","product_image": "product2.jpg","product_price": 24.99},{"product_id": 3,"product_name": "Product 3","product_image": "product3.jpg","product_price": 29.99}]';
const data = JSON.parse(jsonArr);
for (var i = 0; i < data.length; i++) {
if (data[i].product_id === 1) {
document.getElementById("title").innerHTML = data[i].product_name;
}
}
console.log(data);
</script>
字符串
1条答案
按热度按时间iklwldmw1#
你得到了它的要点的权利,然而,你没有办法瞄准其他卡,一旦你处理了第一个。
实现这一点的一种方法是使用
getElementsByClassName
,它将返回一个html元素数组,其中包含给定类的每个元素:字符串
现在,有了这些,你可以使用你的循环,并使用我们刚刚创建的
cardElements
变量和item
函数,将“cardElement”定位在索引i
处。型
现在,要定位
currentCardElement
“内部”的元素,可以使用getElementsByClassName
函数来定位card元素的子节点。当在HTMLElement上调用这个函数时,该函数将只返回父HTMLElement的子树中匹配的HTMLElement,即我们调用该函数的那个。
这意味着,即使我们有多张带有
<h3 class="title">
的卡,也只会返回currentCardElement
下面的h3
。为每个包含数据的div设置一个不同的类可能会很有用,这样每次调用只有一个元素。
的字符串
现在,您应该已经将
data
阵列中的相应产品填充到每张卡中。下面你会看到一个完整的例子。
P.S.你应该考虑使用
querySelector
和querySelectorAll
函数,它们更容易使用,因为它们使用css选择器来定位元素。