DEV Community

Cover image for Building a Simple To-Do List with JavaScript and HTML ๐Ÿ“โœจ
Info general Hazedawn
Info general Hazedawn

Posted on

Building a Simple To-Do List with JavaScript and HTML ๐Ÿ“โœจ

Creating a to-do list is a great project for beginners looking to enhance their skills in JavaScript and HTML. This interactive application will allow users to add tasks, mark them as complete, and delete them as needed. In this blog post, we will walk through the steps to build a simple to-do list using JavaScript for functionality and HTML for structure.

What You Will Learn ๐Ÿ“š
How to set up the HTML structure for the to-do list.
Using JavaScript to add, delete, and mark tasks as complete.
Basic styling tips to enhance the user interface.

Step 1: Setting Up the HTML Structure ๐Ÿ—๏ธ

First, we need to create the basic structure of our to-do list using HTML. Hereโ€™s how you can set it up:

xml
<!DOCTYPE html>




Simple To-Do List
<!-- Link to your CSS file -->



My To-Do List



Add Task


    <!-- Link to your JavaScript file -->

    Explanation:

    • Input Field: Where users can type their tasks.
    • Button: When clicked, it adds the task to the list.
    • Unordered List: Displays the added tasks.

    Step 2: Adding JavaScript Functionality โš™๏ธ
    Now that we have our HTML set up, letโ€™s add some functionality using JavaScript.

    Create a file named script.js and add the following code:

    javascript
    document.getElementById('addTaskBtn').addEventListener('click', addTask);

    function addTask() {
    const taskInput = document.getElementById('taskInput');
    const taskValue = taskInput.value;

    if (taskValue === '') {
        alert("You must write something!");
        return;
    }
    
    const li = document.createElement('li');
    li.textContent = taskValue;
    
    // Create a delete button
    const deleteBtn = document.createElement('span');
    deleteBtn.textContent = ' โŒ';
    deleteBtn.className = 'deleteBtn';
    deleteBtn.onclick = function() {
        li.remove();
    };
    
    li.appendChild(deleteBtn);
    
    // Mark task as complete
    li.onclick = function() {
        li.classList.toggle('checked');
    };
    
    document.getElementById('taskList').appendChild(li);
    
    // Clear input field
    taskInput.value = '';
    

    }

    Explanation:

    • Event Listener: Listens for clicks on the "Add Task" button.
    • Adding Tasks: When clicked, it creates a new list item with the task text and a delete button.
    • Delete Functionality: The delete button removes the task from the list when clicked.
    • Marking as Complete: Clicking on a task toggles its completion status.

    Step 3: Basic Styling with CSS ๐ŸŽจ

    To make our to-do list visually appealing, letโ€™s add some basic styles. Create a file named styles.css and include the following CSS:

    css
    body {
    font-family: Arial, sans-serif;
    }

    app {

    max-width: 400px;
    margin: 0 auto;
    

    }

    h1 {
    text-align: center;
    }

    input[type="text"] {
    width: 70%;
    padding: 10px;
    }

    button {
    padding: 10px;
    }

    ul {
    list-style-type: none;
    padding-left: 0;
    }

    li {
    display: flex;
    justify-content: space-between;
    padding: 10px;
    border-bottom: 1px solid #ccc;
    }

    .checked {
    text-decoration: line-through;
    }

    .deleteBtn {
    cursor: pointer;
    }

    Explanation:

    • Styling Elements: Basic styles are applied to make the input field, button, and list items look good.
    • Checked Class: Adds a line-through effect for completed tasks.

    Conclusion: Your Interactive To-Do List is Ready! ๐ŸŽ‰

    Congratulations! You have successfully built a simple interactive to-do list using JavaScript and HTML. This project not only helps you understand DOM manipulation but also lays the groundwork for more complex applications.

    Next Steps:

    • Consider adding features like editing tasks or saving them in local storage.
    • Explore frameworks like React or Vue.js for building more sophisticated applications.

    *Start coding today and take your web development skills to the next level! ๐Ÿ’ปโœจ
    *

    JavaScript #HTML #WebDevelopment #Coding #ToDoList #FrontendDevelopment #LearnToCode #Programming #TechForBeginners

    Top comments (0)