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 в массиве, а затем устанавливает его как «done» с помощью setAttribute. Однако сообщение консоли, которое я получаю для console.log (mark), является mark.setAttribute, не является функцией. Любые предложения о том, как я могу изменить это, чтобы я мог обновить объект в массиве как «сделан»?проблема с наборомAttribute
Если вы пытаетесь изменить класс, используйте 'element.className = "сделано"'. –
Вы могли бы показать, как заполняется «todos»? это массив элементов или просто идентификаторов? – hexblot
спасибо, что добавляет еще один класс «done», но он не меняет того, который уже существует. – user2084813