Как сделать to do list на javascript

Узнайте, как создать список задач с помощью JavaScript и демонстрацией примера. Вы узнаете базовые принципы работы с to do list и получите инструкции по реализации.

To do list на JavaScript

В этой статье мы посмотрим, как создать To do list на JavaScript. Это простое приложение позволит нам добавлять и удалять задачи из списка, а также помечать их как выполненные.

Для начала мы создадим HTML-шаблон, в котором будет список задач и поле ввода для добавления новых задач.


<div id="app">
  <div class="todo-list">
    <h2>Задачи</h2>
    <ul>
      <li>Сделать покупки</li>
      <li>Сделать домашнюю работу</li>
      <li>Помыть машину</li>
    </ul>
  </div>
  <form>
    <input type="text" placeholder="Добавить новую задачу">
    <button>Добавить</button>
  </form>
</div>

Теперь, когда наш HTML-шаблон готов, мы можем добавить JavaScript для добавления и удаления задач из списка.


const app = document.getElementById('app');
const list = document.querySelector('.todo-list ul');
const form = document.querySelector('form');
const input = document.querySelector('input');

// Добавление элементов в список
form.addEventListener('submit', (e) => {
  e.preventDefault();
  let li = document.createElement('li');
  li.innerHTML = input.value;
  list.appendChild(li);
  input.value = '';
});

// Удаление элементов из списка
list.addEventListener('click', (e) => {
  if (e.target.tagName === 'LI') {
    e.target.remove();
  }
});

Теперь мы можем добавлять и удалять задачи из нашего списка.

Давайте добавим немного другой функционал. Давайте добавим возможность помечать задачи как выполненные и добавлять кнопку для очистки списка.


// Помечаем задачи как выполненные
list.addEventListener('click', (e) => {
  if (e.target.tagName === 'LI') {
    e.target.classList.toggle('checked');
  }
});

// Добавляем кнопку для очистки списка
const clearBtn = document.createElement('button');
clearBtn.innerHTML = 'Очистить список';
clearBtn.className = 'clear-btn';
app.appendChild(clearBtn);

// Очищаем список при нажатии на кнопку
clearBtn.addEventListener('click', () => {
  while (list.firstChild) {
    list.removeChild(list.firstChild);
  }
});

Наше приложение To do list на JavaScript почти закончено. Давайте добавим немного стилей для более приятного отображения приложения.


// Добавляем стили
const styles = `
  body {
    font-family: sans-serif;
    background-color: #f5f5f5;
  }
  #app {
    max-width: 600px;
    margin: 0 auto;
    padding: 10px;
    background-color: #fff;
    box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
  }
  .todo-list {
    margin-bottom: 20px;
  }
  .todo-list h2 {
    margin: 0;
    padding-bottom: 10px;
    font-size: 18px;
    font-weight: bold;
    border-bottom: 1px solid #ddd;
  }
  .todo-list li {
    padding: 10px;
    margin: 0;
    list-style: none;
  }
  .todo-list li.checked {
    text-decoration: line-through;
  }
  form {
    display: flex;
  }
  form input {
    flex: 1;
    padding: 10px;
    font-size: 16px;
    border: 1px solid #ddd;
    border-radius: 5px;
  }
  form button {
    padding: 10px;
    font-size: 16px;
    background-color: #4caf50;
    color: #fff;
    border: 0;
    border-radius: 5px;
    cursor: pointer;
  }
  .clear-btn {
    margin-top: 10px;
    font-size: 16px;
    background-color: #f44336;
    color: #fff;
    border: 0;
    border-radius: 5px;
    cursor: pointer;
  }
`;

const styleEl = document.createElement('style');
styleEl.innerHTML = styles;
document.head.appendChild(styleEl);

Теперь мы закончили работу над нашим приложением To do list на JavaScript. Надеюсь, что этот пример поможет вам в ваших проектах.

Ответы (0)