我正在 Vue.js 中制作一个表格并使用v-for
指令渲染一些列:
<td v-for="(item, index) in items"> {{ item.name }} </td>
有一个未知的元素计数,我必须向最后一个渲染的元素添加一个类。我不能使用:last-child
,或者:last-of-type
因为它不是<td>
一行中的最后一个元素,它只是最后一个渲染的元素,v-for
但也有以下<td>
元素。
我们如何在 Vue.js 中实现这一点?
我正在 Vue.js 中制作一个表格并使用v-for
指令渲染一些列:
<td v-for="(item, index) in items"> {{ item.name }} </td>
有一个未知的元素计数,我必须向最后一个渲染的元素添加一个类。我不能使用:last-child
,或者:last-of-type
因为它不是<td>
一行中的最后一个元素,它只是最后一个渲染的元素,v-for
但也有以下<td>
元素。
我们如何在 Vue.js 中实现这一点?
你必须使用v-bind:class
指令。
<td v-for="(item, index) in items"
v-bind:class="{ active: index==items.length-1 }"> {{ item.name }} </td>
CSS类:
.active {
//some style
}
解决方案是检查index
元素是否等于items.length-1
v-bind:class="{ active: index==items.length-1 }"
工作示例:
new Vue({
el: '#app',
data: {
items:[{"name":"A"},{"name":"B"},{"name":"C"}]
}
})
.active {
color: red;
}
<script src="https://unpkg.com/vue"></script>
<div id="app">
<table>
<tr>
<td v-for="(item, index) in items"
v-bind:class="{ active: index==items.length-1 }"> {{ item.name }} </td>
</tr>
</table>
</div>