@Chamomile1
начинающий программист frontend

Почему LocalStorage и применение стилей работают не совсем корректно?

Нужно сделать обновляющийся список дел с использованием localStorage. Я сделала так, и оно работает... почти:

const arr = [];
var ul = document.querySelector('ul');

function newElement() {
  var inputValue = document.querySelector('input').value;

   if (inputValue.length !== 0) {
   		arr.push({
   			text: inputValue, 
   			done: false,
   			id: Math.random().toString()
   		});
  		localStorage.setItem('taskslist', JSON.stringify(arr));
	}

var li = document.createElement('li');
li.classList.add("list__item");
var getId = li.getAttribute('id');
li.appendChild(
	document.createTextNode(inputValue)
	);
document.querySelector('ul').appendChild(li);
document.querySelector('input').value = "";
};

function todosRender () {
var raw = localStorage.getItem('taskslist');
var todos = JSON.parse(raw);
if (todos) {
for (todo of todos) {
	var li = document.createElement('li');
	li.classList.add("list__item");
li.appendChild(
	document.createTextNode(todo.text)
);
li.setAttribute('id', todo.id);
document.querySelector('ul').appendChild(li);
li.addEventListener('click', () => {
li.getAttribute('id') == todo.id ? (li.classList.add('list__item_done'), todo.done = true): console.log('error');
});
	}
 }
};
window.addEventListener('storage', ({ url, key, newValue: value }) => {  
	console.log(`Key '${key}' changed value to '${value}' from '${url}'`);
	arr.push(value);
	todosRender();
});

В результате получилось, что значение в localStorage с false на true не меняется, хотя стили применяются, но только к одному элементу. Уже три часа сижу, копаю, не могу понять где же ошибка(
Помогите найти ошибку, а дальше я уже сама буду пытаться разобраться
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
black1277
@black1277
Вольный стрелок
У вас ошибка в этой строке
if(todo.done = true) {
вы не проверяете условие, а присваиваете true значение. Нужен оператор сравнения
if(todo.done === true) {
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы