使用v-for指令循环遍历课表数据,渲染效果如下 1-10周(1-5节)-星期一-软件测试基础-本部-实222 9-16周(6-9节)-星期一-大数据系统综合运用-本部-实333 9-16周(6-9节)-星期二-大数据系统综合运用-本部-实333 9-16周(1-4节)-星期三-大数据系统综合运用-本部-实333 9-18周(10-13节)-星期三-Vue应用程序开发-本部-实222 请输入完整代码并创建课表
时间: 2023-07-08 14:55:30 浏览: 157
浅谈vue.js中v-for循环渲染
很高兴为您解答问题!以下是完整代码:
HTML部分:
```
<div id="app">
<table>
<thead>
<tr>
<th>时间</th>
<th>星期一</th>
<th>星期二</th>
<th>星期三</th>
<th>星期四</th>
<th>星期五</th>
</tr>
</thead>
<tbody>
<tr v-for="(item, index) in courseData" :key="index">
<td>{{ item.time }}</td>
<td>{{ getCourse(item, '星期一') }}</td>
<td>{{ getCourse(item, '星期二') }}</td>
<td>{{ getCourse(item, '星期三') }}</td>
<td>{{ getCourse(item, '星期四') }}</td>
<td>{{ getCourse(item, '星期五') }}</td>
</tr>
</tbody>
</table>
</div>
```
JavaScript部分:
```
new Vue({
el: '#app',
data: {
courseData: [
{
time: '1-10周(1-5节)',
courses: [
{
week: '星期一',
name: '软件测试基础',
location: '本部-实222'
},
{
week: '星期一',
name: '大数据系统综合运用',
location: '本部-实333'
},
{
week: '星期二',
name: '大数据系统综合运用',
location: '本部-实333'
},
{
week: '星期三',
name: '大数据系统综合运用',
location: '本部-实333'
},
{
week: '星期三',
name: 'Vue应用程序开发',
location: '本部-实222'
}
]
},
{
time: '9-16周(6-9节)',
courses: [
{
week: '星期一',
name: '大数据系统综合运用',
location: '本部-实333'
},
{
week: '星期二',
name: '大数据系统综合运用',
location: '本部-实333'
}
]
},
{
time: '9-18周(10-13节)',
courses: [
{
week: '星期三',
name: 'Vue应用程序开发',
location: '本部-实222'
}
]
}
]
},
methods: {
getCourse(item, week) {
for (let i = 0; i < item.courses.length; i++) {
if (item.courses[i].week === week) {
return `${item.time}-${week}-${item.courses[i].name}-${item.courses[i].location}`
}
}
}
}
})
```
在这里,我们使用了 `v-for` 指令循环遍历课表数据,并使用 `getCourse` 方法来获取每个格子中的课程信息。同时,使用了 Vue.js 框架来实现数据的双向绑定,以及方便的 DOM 操作和事件处理。
阅读全文