for循环el-card点击其中一个卡片,只改变这个卡片的背景颜色
时间: 2024-02-20 14:00:31 浏览: 148
好的,你可以使用以下代码来实现这个需求:
```html
<template>
<div>
<el-card v-for="(item, index) in cardList"
:key="index"
:style="{ backgroundColor: item.bgColor }"
@click="changeBgColor(index)">
<p>{{ item.title }}</p>
<p>{{ item.content }}</p>
</el-card>
</div>
</template>
<script>
export default {
data() {
return {
cardList: [
{ title: 'Card 1', content: 'Content of card 1', bgColor: '#ffffff' },
{ title: 'Card 2', content: 'Content of card 2', bgColor: '#ffffff' },
{ title: 'Card 3', content: 'Content of card 3', bgColor: '#ffffff' }
]
}
},
methods: {
changeBgColor(index) {
// 将点击的卡片背景颜色改为红色
this.cardList[index].bgColor = '#ff0000';
}
}
}
</script>
```
以上代码中,我们使用了 `v-for` 指令循环渲染了一组卡片,每个卡片的背景颜色由 `item.bgColor` 决定。当用户点击某个卡片时,会触发 `changeBgColor` 方法,该方法会将对应卡片的 `bgColor` 属性值改为红色。这样就实现了只改变点击卡片背景颜色的需求。
阅读全文