gpt4 book ai didi

javascript - setAttribute 的问题

转载 作者:行者123 更新时间:2023-11-28 09:20:51 25 4
gpt4 key购买 nike

function Todo(id, task, who, dueDate) {
this.id = id;
this.task = task;
this.who = who;
this.dueDate = dueDate;
this.done = false;
}


function updateDone(e) {
var spanClicked = e.target;
var id = spanClicked.parentElement.id;
spanClicked.innerHTML = " ✔ ";
spanClicked.setAttribute("class", "done");
console.log("you clicked this span" + id);


for(var i = 0; i < todos.length; i++) {
if (todos[i].id == id) {
var mark = todos[i];
mark.setAttribute("class", "done");
console.log(mark);
break;
}
}
}

此函数的第一部分更新网页以显示对象已“完成”。第二部分是我遇到问题的地方。我正在尝试将对象更新为数组内的“完成”。这个想法是将用户点击的内容的 id 与数组中的 id 相匹配,然后使用 setAttribute 将其设置为“完成”。但是,我收到的 console.log(mark) 控制台消息是 mark.setAttribute 不是函数。关于如何修改它以便我可以将数组中的对象更新为“完成”有什么建议吗?

最佳答案

for(var i = 0; i < todos.length; i++) {
if (todos[i].id == id) {
var element = document.getElementById(todos[i].id);
element.setAttribute("class", "done");
console.log(element);
break;
}
}

或者,如果示例中的“mark”不是 DOM 对象,那么您只需将其 did 属性设置为 true。

for(var i = 0; i < todos.length; i++) {
if (todos[i].id == id) {
todos[i].done = true;
console.log(todos[i]);
break;
}
}

关于javascript - setAttribute 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15009911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com