Inc*_*ble 3 javascript vue.js v-for
我正在Vue.js中创建一个表并使用该v-for指令呈现一些列:
<td v-for="(item, index) in items"> {{ item.name }} </td>
Run Code Online (Sandbox Code Playgroud)
有一个未知的元素计数,我必须在最后一个渲染元素中添加一个类.我不能使用: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>
Run Code Online (Sandbox Code Playgroud)
CSS类:
.active {
//some style
}
Run Code Online (Sandbox Code Playgroud)
解决方案是检查index元素是否等于items.length-1
v-bind:class="{ active: index==items.length-1 }"
Run Code Online (Sandbox Code Playgroud)
工作范例:
new Vue({
el: '#app',
data: {
items:[{"name":"A"},{"name":"B"},{"name":"C"}]
}
})Run Code Online (Sandbox Code Playgroud)
.active {
color: red;
}Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)