boardTypeBody: [ { type: '生态板', price: 540 }, { type: '颗粒板', price: 410 }, { type: '欧松板', price: 680 } ] 在vue+html项目中, 我需要实现下拉菜单中选择boardTypeBody中的元素, 选择之后在页面显示选中的元素的price, 帮我实现
时间: 2024-02-14 18:03:22 浏览: 76
好的,可以先在`data`中定义一个`selectedType`属性来绑定选择的板材类型,以及一个`price`属性来显示选中的类型的价格,然后在模板中使用`v-model`指令绑定`selectedType`属性,使用`v-for`指令遍历`boardTypeBody`数组,并将每个元素渲染为一个`option`标签。最后,在`select`标签上绑定`change`事件处理函数,在处理函数中根据选择的类型更新`price`属性的值。具体代码如下:
```html
<template>
<div>
<select v-model="selectedType" @change="updatePrice">
<option v-for="item in boardTypeBody" :key="item.type" :value="item.type">{{ item.type }}</option>
</select>
<p>Price: {{ price }}</p>
</div>
</template>
<script>
export default {
data() {
return {
selectedType: '',
price: ''
}
},
methods: {
updatePrice() {
const selected = this.boardTypeBody.find(item => item.type === this.selectedType)
if (selected) {
this.price = selected.price
}
}
}
}
</script>
```
在上面的代码中,我们定义了一个`updatePrice`方法来更新`price`属性的值。在该方法中,使用`find`方法查找`boardTypeBody`数组中与当前选中的类型匹配的元素,如果找到了就更新`price`属性的值为该元素的价格。在模板中,我们使用`v-for`指令遍历`boardTypeBody`数组,并将每个元素渲染为一个`option`标签。在`select`标签上使用`v-model`指令双向绑定`selectedType`属性,表示当前选中的板材类型。在`select`标签上还绑定了一个`change`事件处理函数`updatePrice`,表示当用户选择了板材类型时,会执行`updatePrice`方法来更新`price`属性的值。最后,在模板中使用`{{ price }}`来显示选中的类型的价格。
阅读全文