vue v-for循环某一数组,div中显示循环的每一个对象的name值,例如item.name,循环出的item.name横向排列,点击第一个item.name时会使用v-show展开对应的div,例如item.name流程,只有再次点击此item.name v-show展开的div才会收起,若点击其他的item.name,例如第二个item.name则会展示出第二个item.name所对应的div
时间: 2024-02-28 21:54:34 浏览: 168
vue中v-for循环选中点击的元素并对该元素添加样式操作
好的,针对您的问题,我可以给您提供一个示例代码,供您参考:
```html
<template>
<div>
<div v-for="(item, index) in items" :key="index">
<div @click="toggle(index)">
{{ item.name }}
</div>
<div v-show="activeIndex === index">
{{ item.content }}
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
items: [
{
name: 'item1',
content: 'content1'
},
{
name: 'item2',
content: 'content2'
},
{
name: 'item3',
content: 'content3'
}
],
activeIndex: -1
}
},
methods: {
toggle(index) {
if (this.activeIndex === index) {
this.activeIndex = -1
} else {
this.activeIndex = index
}
}
}
}
</script>
```
在这个示例代码中,我们使用了`v-for`指令来循环展示数组中的每个对象,在每个对象中我们使用了一个`div`元素来展示`item.name`的值,并且为这个`div`元素绑定了一个`click`事件。在点击事件的处理函数中,我们会根据当前点击的`item`的索引值来判断是否展开当前`item`对应的`div`元素。我们使用了一个`activeIndex`变量来记录当前展开的`item`的索引值,如果`activeIndex`等于当前点击的`item`的索引值,则说明当前`item`对应的`div`元素已经展开了,我们需要将`activeIndex`设置为`-1`来收起这个`item`对应的`div`元素;否则,我们需要将`activeIndex`设置为当前点击的`item`的索引值来展开这个`item`对应的`div`元素。同时,我们使用了`v-show`指令来控制`div`元素的显示和隐藏。
阅读全文