【发布时间】:2018-12-11 18:29:23
【问题描述】:
我正在编写一个小型 vue 应用程序。在一个页面上,我包含同一个组件的多个实例,就像这样
<my-component v-for="t in todos"></my-component>
在该组件中,我会显示待办事项的名称和描述以及到期日期等数据。我用这个功能检查是否过期
let d = new Date();
let overdue = false;
this.deadline = new Date(this.deadline);
if (this.deadline < d) { overdue = true; }
if (overdue && !this.completed) {
document.getElementById('taskCard').style.backgroundColor = 'red';
这可以正确检测任务何时过期,但它总是使第一个待办事项变为红色,而不是过期的待办事项。如何正确定位组件?我的想法是,当我执行 document.getElementById 时,它会找到第一个#taskCard,因为它正在查看页面。有没有办法做类似 this.getElementById 或 my-component.getElementById 的事情?
感谢您的帮助!
【问题讨论】:
-
可以分享
my-component的代码吗? -
ID 在整个 HTML 页面中应该是唯一的。
getElementById永远不能指向多个元素。
标签: javascript vue.js