4

我正在 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 中实现这一点?

4

1 回答 1

13

你必须使用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>

于 2017-10-02T09:13:01.397 回答