я перемещаю var liElement = document.createElement('li'); за пределы функции addTodo(), чтобы эта функция работала
function removeTodo(){
liElement.remove()
};
но теперь у меня другая проблема, я не могу добавить более одного todo (li)
const input = document.getElementById('input');
const addBtn = document.getElementById('btn');
const todoList = document.getElementById('todoList');
var ulElement = document.createElement('ul');
var liElement = document.createElement('li');
let placeholderValue = '';
// Этот код предназначен для очистки значения заполнителя
input.addEventListener('focus' , () => {
placeholderValue = input.placeholder;
input.placeholder = '';
});
input.addEventListener('blur' , ()=> {
input.placeholder = placeholderValue;
});
// эта функция предназначена для добавления действий в список
function addTodo(){
todoList.appendChild(ulElement)
ulElement.appendChild(liElement);
liElement.classList.add('liElement')
liElement.innerHTML = input.value;
};
addBtn.addEventListener('click' , addTodo)
// this function is for remove todo from the list
function removeTodo(){
liElement.remove()
};
liElement.addEventListener('contextmenu' , (e) => {
e.preventDefault()
removeTodo()
});



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы не используете createTextNode например:
var t = document.createTextNode(input.value);
liElement.appendChild(t);
...и вы построили очень сложную структуру. Упростите себе задачу.
И наконец
const todoList = document.getElementById('todoList');
var ulElement = document.createElement('ul');
зачем использовать для создания элементов? вам это не нужно. Вы можете создать их в html файле.
Спасибо! Я просматривал свой старый вопрос и заметил, что не поставил вам «отметку о правильном ответе», извините за это, братан <3