Course Overview
DOM Manipulation with JavaScript
An HTML page is not fixed once it loads. JavaScript can find elements, change their content or appearance, respond to people, and create new parts of the page. This course teaches those changes one small step at a time. You should know basic HTML and JavaScript variables, functions, and arrays; the first lessons review the browser concepts you need.
What you will build
- Read the DOM as a tree and select the right element without assuming it exists.
- Safely update text and attributes, including accessible state.
- Add and remove classes and styles while keeping CSS responsible for most presentation.
- Create, insert, replace, and remove elements without treating untrusted text as HTML.
- Handle clicks, keyboard input, and events from dynamically created elements.
- Read forms, give live feedback, and build a filter, a disclosure, and a dynamic list.
- Call APIs with plain JavaScript, check responses, handle loading and errors, and render returned data safely.
How to use the course
Each topic starts with a completed, runnable example. Read the explanation and inspect the index.html, style.css, and script.js tabs; run the browser preview and change one small thing to see what it does. The following exercise revisits the same idea in a different setting with a starter, tests, and a reference solution. Later sections bring earlier skills back in new combinations. Section quizzes check understanding after the worked examples and practice.
The order matters: selectors come before updates, updates before node creation, events before form interactions, and all of those before the final projects. Start at the beginning if the DOM is new to you; revisiting a skill is part of the lesson, not a sign that you missed it.
Sections
- DOM Foundations — browser document, tree, script loading, and first selectors.
- Finding and Traversing Elements — groups, relatives, scoped searches, and missing nodes.
- Text, HTML, and Attributes — safe content updates, links, and custom data.
- Classes, Styles, and Visibility — state-driven appearance and accessible disclosure.
- Creating, Moving, and Removing Nodes — new elements and safe replacement.
- Events and Interaction — clicks, delegation, and keyboard behavior.
- Forms and Live Feedback — input, submit, validation, change, and reset.
- Practical DOM Projects — filtering, disclosure controls, and dynamic lists.
- Project — Community Directory — select, search, add, and remove directory cards.
- Project — Workshop Planner — show, add, and manage sessions with accessible feedback.
- Fetch API and DOM Updates — requests, responses, loading and errors, query parameters, and cancellation.
- Project — Data Dashboard — build a resilient API-style interface using the DOM.
Syllabus
- The page is a tree
- Exercise: follow the document reference
- Load a script when the page is ready
- Exercise: initialize a deferred script
- Find one element by id or CSS selector
- Exercise: select a notice and label
- Compare DOM properties, HTML attributes, and node types
- Exercise: inspect a room input and its nodes
- ✦Module Quiz
- Find every match with querySelectorAll
- Exercise: label every trail stop
- Move from a child to its relatives
- Exercise: trace a nested card
- Check for missing elements and search within a card
- Exercise: update only the chosen card
- Compare a live HTMLCollection with a static NodeList
- Exercise: safely expand a live collection
- ✦Module Quiz