td class=col2 a-checkbox v-modelchecked=adviceone span监测血糖空腹+三餐后2小时血糖一周一次直到分娩span td td class=col2 a-checkbox v-modelchecked=advicetwo span监测血压span
在Vue 3中,你可以使用ref来创建响应式的变量,并通过watch来监听adviceTwo的变化。然后,你可以使用querySelectorAll方法来获取所有的span元素,并遍历它们来获取值。
以下是用<script setup>解决这个问题的示例代码:
<template>
<td class="col2">
<a-checkbox v-model:checked="adviceOne" />
<span>监测血糖(空腹+三餐后2小时血糖,一周一次直到分娩)</span>
</td>
<td class="col2">
<a-checkbox v-model:checked="adviceTwo" />
<span>监测血压,</span>
<a-input v-model:value="day1" style="width:100px;border-style: hidden;border-bottom: 1px solid #050505;" />
<span>天一次,血压超过</span>
<a-input v-model:value="bloodPressure" style="width:100px;border-style: hidden;border-bottom: 1px solid #050505;" />
<span>mmgh或有头昏等症状复诊</span>
</td>
</template>
<script setup>
import { ref, watch } from 'vue';
const adviceOne = ref(false);
const adviceTwo = ref(false);
const day1 = ref('');
const bloodPressure = ref('');
watch(adviceTwo, (value) => {
if (value) {
const spans = document.querySelectorAll('td.col2 span');
const values = Array.from(spans).map(span => span.textContent);
values.push(day1.value, bloodPressure.value);
console.log(values);
}
});
</script>
在这个示例代码中,我们创建了名为adviceOne和adviceTwo的ref变量来存储复选框的选中状态。当adviceTwo的值发生变化时,我们使用querySelectorAll来获取所有td.col2 span元素,并通过Array.from将其转换为数组。然后,我们使用map方法遍历数组,获取每个span元素的文本内容,并将其存储在values数组中。最后,我们将day1和bloodPressure的值添加到values数组中,并在控制台中打印出来。
请注意,使用document.querySelector和querySelectorAll来获取DOM元素是一种不推荐的做法,因为它们是基于全局文档的查询。在实际项目中,建议使用Vue的响应式数据来驱动视图,而不是直接操作DOM元素
原文地址: https://www.cveoy.top/t/topic/hPCo 著作权归作者所有。请勿转载和采集!