DOM and events: Data attributes
dataset exposes data-* values as strings; data-lesson-id becomes dataset.lessonId.
Current edit
Understand the pattern
dataset exposes data-* values as strings; data-lesson-id becomes dataset.lessonId.
dataset exposes data-* values as strings; data-lesson-id becomes dataset.lessonId.
Misconceptions to reject
- A string containing code executes automatically when it is assigned.
- A successful element lookup guarantees that the rest of an event handler is correct.
This is a code-inspection lab, not a full JavaScript runtime.
Worked example and expected result
const panel = document.querySelector("#panel");
let lessonId = "unknown";
if (panel) { lessonId = panel.dataset.lessonId; }dataset exposes data-* values as strings; data-lesson-id becomes dataset.lessonId.
Explain it
Apply it elsewhere
Keep the momentum.
Complete the lab, then explain and apply the pattern.
Next: DOM and events: Keyboard-friendly buttonsTry an incident drillAnonymous lesson and mastery progress lasts for this session. Sign in to keep synced lesson XP between sessions; mastery stays device-local. No speed bonus, lost lives, or hint penalties.
Keep learning
- 01DOM and events: Class togglesclassList.toggle alternates membership unless given an explicit force boolean.Practice
- 02DOM and events: Keyboard-friendly buttonsA native button already supports keyboard activation. A click listener can serve mouse, touch, and keyboard users.Practice
- 03DOM and events: Status announcementsUpdating an existing live region can communicate a status without moving focus away from the user.Practice