Как создать список в приложении todo более одного раза (только javascript)

я перемещаю 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()
});
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
115
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не используете createTextNode например:

 var t = document.createTextNode(input.value);
   liElement.appendChild(t);

...и вы построили очень сложную структуру. Упростите себе задачу.

И наконец

const todoList = document.getElementById('todoList');
var ulElement = document.createElement('ul');

зачем использовать для создания элементов? вам это не нужно. Вы можете создать их в html файле.

Спасибо! Я просматривал свой старый вопрос и заметил, что не поставил вам «отметку о правильном ответе», извините за это, братан <3

Rabie 12.08.2022 22:26

Другие вопросы по теме