vue的table表格,控制行的样式颜色变化

可以使用Vue的条件渲染和动态类绑定来控制表格行元素的样式。

首先,在你的表格上设置一个`class`,比如`table-row`。然后,在`v-for`循环渲染每一行数据的时候,使用v-bind指令动态绑定样式类,使符合查询条件的行添加一个灰色的样式类,比如`gray-row`。如下面的示例代码:

```html
<template>
  <div>
    <label for="search-text">Search:</label>
    <input id="search-text" v-model="searchText" type="text">
    <table>
      <thead>
        <tr>
          <th>Name</th>
          <th>Age</th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="person in filteredPeople" :class="{ 'table-row': true, 'gray-row': shouldGrayRow(person) }">
          <td>{{ person.name }}</td>
          <td>{{ person.age }}</td>
        </tr>
      </tbody>
    </table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      people: [
        { name: 'Alice', age: 25 },
        { name: 'Bob', age: 30 },
        { name: 'Charlie', age: 35 },
        { name: 'David', age: 40 }
      ],
      searchText: ''
    }
  },
  computed: {
    filteredPeople() {
      return this.people.filter(person => {
        return person.name.toLowerCase().includes(this.searchText.toLowerCase())
      })
    }
  },
  methods: {
    shouldGrayRow(person) {
      return person.age >= 30
    }
  }
}
</script>

<style>
.gray-row {
  background-color: #f1f1f1;
}
</style>
```

在这个例子中,我们使用`shouldGrayRow`方法来判断当前行是否符合灰化条件(比如年龄是否大于等于30岁),并在`v-bind:class`指令中动态绑定样式类。`table-row`样式类用于定义表格的默认样式,`gray-row`样式类用于定义灰化样式。你可以根据自己的需求修改类名和样式。

需要注意的是,当你改变搜索关键字时,computed属性会重新计算,会重新为每行数据绑定样式类,因此灰化样式会自动添加或移除。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值