有什么方法可以使用vue获取表的列号或位置以及行标题吗?
到目前为止,输出是这样的。
生成表的代码:
<table v-if="this.itemList.length > 0">
<thead class="ui-table-header-row">
<tr>
<th class="ui-table-header-cell l-padding"></th>
<th class="ui-table-header-cell center" v-for="item in 31" :key="item.id">{{thisMonth}} July{{ item }}Day</th>
</tr>
</thead>
<template>
<tr>
<td></td>
</tr>
<tbody style="border-bottom:#dbb100 1px" v-for="(item,index) in itemList" :key="index.id" >
<tr class="left-align">
<td>{{item.name}}</td>
<td v-for="(item,index) in costList" :key="index.id">{{item.total_work}}</td>
</tr>
</tbody>
</template>
</table>
在此行<td v-for="(item,index) in costList" :key="index.id">{{item.total_work}}</td>
上,我必须先检查行标题名称是否与我在item.name
中的costList
匹配,然后再显示该值。我发现我的期望输出here有点接近,但是我不知道如何使用vue复制它。任何输入表示赞赏。
答案 0 :(得分:2)
我复制了您包含在其对应的样本中的样本。
new Vue({
el: "#app",
data: {
days: [1,2,3,4,5],
itemList: [
{
name: 'Apple'
},
{
name: 'Banana'
},
{
name: 'Carrot'
}
]
},
methods: {
alert(item_index, day_index) {
let item = this.itemList[item_index];
let day = this.days[day_index];
alert(item.name + ', Day ' + day);
}
}
})
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<div id="app">
<table border="1">
<thead>
<tr>
<th>Day/Time</th>
<th v-for="day in days" width="50">Day {{ day }}</th>
</tr>
</thead>
<tbody>
<tr v-for="(item, item_index) in itemList" :key="item.name">
<td>{{ item.name }}</td>
<td v-for="(day, day_index) in days" @click="alert(item_index, day_index)">Click</td>
</tr>
</tbody>
</table>
</div>
请参阅此JS小提琴: https://jsfiddle.net/eywraw8t/180692/