vue中点击选中该元素并且放到数组中,再次点击取消并且从该数组中删除并且返回新数组的方法怎么写
时间: 2023-05-19 16:06:35 浏览: 97
你可以使用 v-bind:class 和 @click 事件来实现这个功能。首先,你需要定义一个数组来存储选中的元素,然后在 @click 事件中判断该元素是否已经被选中,如果已经被选中,则从数组中删除该元素,否则将该元素添加到数组中。最后,返回新数组即可。
代码示例:
```html
<template>
<div>
<div v-for="item in items" :key="item.id" :class="{ active: isActive(item) }" @click="toggleActive(item)">
{{ item.name }}
</div>
</div>
</template>
<script>
export default {
data() {
return {
selectedItems: [],
items: [
{ id: 1, name: 'item 1' },
{ id: 2, name: 'item 2' },
{ id: 3, name: 'item 3' },
],
};
},
methods: {
isActive(item) {
return this.selectedItems.includes(item);
},
toggleActive(item) {
if (this.selectedItems.includes(item)) {
this.selectedItems.splice(this.selectedItems.indexOf(item), 1);
} else {
this.selectedItems.push(item);
}
},
},
};
</script>
<style>
.active {
background-color: yellow;
}
</style>
```
这个示例中,我们使用 v-bind:class 绑定了一个名为 active 的 class,当该元素被选中时,它会变成黄色背景。在 @click 事件中,我们使用 toggleActive 方法来切换该元素的选中状态,并更新 selectedItems 数组。最后,我们使用 v-for 循环遍历 items 数组,并根据选中状态来绑定 class。
阅读全文