138 commands · 9 cheat sheets · HTML

DOM and Lifecycle master quick reference

Browse 138 commands from 9 focused cheat sheets on page 1 of 1. Each example opens its matching detailed section.

DOM and Lifecycle · 18 commands

Browser Events and Event Delegation Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Register a listenerbutton.addEventListener('click', handleClick)View examples
Listen oncebutton.addEventListener('click', initialize, { once: true })View examples
Group listener cleanuppanel.addEventListener('input', update, { signal: controller.signal })View examples
Remove a listenerbutton.removeEventListener('click', handleClick)View examples
Observe the capture phasedocument.addEventListener('click', inspect, { capture: true })View examples
Read the listener targetconst container = event.currentTargetView examples
Stop further propagationevent.stopPropagation()View examples
Resolve a delegated actionconst action = event.target instanceof Element ? event.target.closest('[data-action]') : nullView examples
Verify delegation ownershipif (!menu.contains(action)) returnView examples
Cancel a default actionif (event.cancelable) event.preventDefault()View examples
Declare a passive listenerwindow.addEventListener('touchmove', observe, { passive: true })View examples
Inspect cancellationif (event.defaultPrevented) returnView examples
Create an application eventconst event = new CustomEvent('cart:add', { detail: { sku: 'A42' } })View examples
Dispatch synchronouslyconst accepted = cart.dispatchEvent(event)View examples
Inspect the event pathconst path = event.composedPath()View examples
Cross a shadow boundarynew CustomEvent('widget:change', { bubbles: true, composed: true })View examples
Prefer activation eventsbutton.addEventListener('click', activate)View examples
Read a logical keyif (event.key === 'Escape') closeDialog()View examples

DOM and Lifecycle · 13 commands

Document Lifecycle and Page Visibility Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Inspect readinessdocument.readyStateView examples
Wait for parsed DOMdocument.addEventListener('DOMContentLoaded', init, { once: true })View examples
Wait for page loadwindow.addEventListener('load', measureAssets, { once: true })View examples
Initialize late or earlydocument.readyState === 'loading' ? document.addEventListener('DOMContentLoaded', init) : init()View examples
Read visibilitydocument.visibilityState === 'hidden'View examples
Observe visibilitydocument.addEventListener('visibilitychange', syncWork)View examples
Handle page activationwindow.addEventListener('pageshow', restoreTransientState)View examples
Handle page deactivationwindow.addEventListener('pagehide', releaseTransientResources)View examples
Detect cached restorationif (event.persisted) refreshVolatileData()View examples
Warn about unsaved workwindow.addEventListener('beforeunload', event => event.preventDefault())View examples
Avoid unload handlerswindow.addEventListener('pagehide', cleanup)View examples
Queue a small beaconnavigator.sendBeacon('/session', payload)View examples
Send with fetch optionsfetch('/session', { method: 'POST', body: payload, keepalive: true })View examples

DOM and Lifecycle · 15 commands

DOM Selection and Range API Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Create a collapsed rangeconst range = document.createRange()View examples
Set text boundariesrange.setStart(textNode, 2); range.setEnd(textNode, 7)View examples
Select a noderange.selectNode(element)View examples
Select node contentsrange.selectNodeContents(element)View examples
Read document selectionconst selection = document.getSelection()View examples
Guard an empty selectionif (selection && selection.rangeCount > 0) selection.getRangeAt(0)View examples
Display a rangeselection.removeAllRanges(); selection.addRange(range)View examples
Observe selection changesdocument.addEventListener('selectionchange', updateToolbar)View examples
Clone selected contentconst fragment = range.cloneContents()View examples
Move selected content outconst fragment = range.extractContents()View examples
Insert at a boundaryrange.insertNode(document.createTextNode('Note'))View examples
Measure line fragmentsconst rects = range.getClientRects()View examples
Compare two startsa.compareBoundaryPoints(Range.START_TO_START, b)View examples
Read textarea offsetsconst selected = field.value.slice(field.selectionStart, field.selectionEnd)View examples
Map across shadow rootsselection.getComposedRanges({ shadowRoots: [root] })View examples

DOM and Lifecycle · 21 commands

DOM Traversal and Manipulation Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Select the first matchconst submit = form.querySelector('button[type="submit"]')View examples
Select a static snapshotconst rows = table.querySelectorAll('tbody > tr')View examples
Escape a selector valueconst item = document.querySelector(`#${CSS.escape(rawId)}`)View examples
Test an elementif (element.matches('[aria-current]')) markActive(element)View examples
Find the nearest matchconst card = button.closest('[data-card]')View examples
Skip non-element siblingsconst nextItem = item.nextElementSiblingView examples
Read live element childrenconst liveItems = list.childrenView examples
Create a filtered tree walkconst walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT)View examples
Create an elementconst item = document.createElement('li')View examples
Set literal textitem.textContent = userValueView examples
Stage nodes in a fragmentconst fragment = document.createDocumentFragment()View examples
Append nodes and textcard.append(title, ' — ', summary)View examples
Move a node to the startlist.prepend(list.lastElementChild)View examples
Insert before a siblingreference.before(newNode)View examples
Replace all childrencontainer.replaceChildren(emptyState)View examples
Replace one nodeplaceholder.replaceWith(content)View examples
Clone a subtreeconst copy = template.content.cloneNode(true)View examples
Import a cross-document copyconst copy = document.importNode(source, true)View examples
Adopt a cross-document nodeconst moved = document.adoptNode(source)View examples
Remove a nodenotice.remove()View examples
Observe child mutationsobserver.observe(list, { childList: true, subtree: true })View examples

DOM and Lifecycle · 11 commands

HTML Templates, Slots, and Custom Elements Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Declare a template<template id="card-template"> <article> <slot> </slot> </article> </template>View examples
Clone template contentconst fragment = template.content.cloneNode(true)View examples
Register an elementcustomElements.define('status-card', StatusCard)View examples
Handle connectionconnectedCallback() { this.render(); }View examples
Observe attributesstatic observedAttributes = ['status']View examples
React to an attributeattributeChangedCallback(name, oldValue, newValue) { this.render(); }View examples
Attach an open shadow rootconst root = this.attachShadow({ mode: 'open' })View examples
Project default content<slot>Fallback text</slot>View examples
Project named content<slot name="actions"></slot>View examples
Expose a style part<button part="button"><slot></slot></button>View examples
Wait for registrationawait customElements.whenDefined('status-card')View examples

DOM and Lifecycle · 13 commands

HTML URL, History, and Navigation APIs Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Resolve against a baseconst url = new URL('../guide', document.baseURI)View examples
Parse without throwingconst url = URL.parse(input, location.href)View examples
Validate a destinationif (url.origin !== location.origin || url.protocol !== 'https:') throw new Error('Blocked')View examples
Set one query valueurl.searchParams.set('page', '2')View examples
Append a repeated valueurl.searchParams.append('tag', 'html')View examples
Read repeated valuesconst tags = url.searchParams.getAll('tag')View examples
Navigate to a fragmentlocation.hash = 'installation'View examples
Observe fragment traversaladdEventListener('hashchange', event => render(location.hash))View examples
Add application historyhistory.pushState({ page: 2 }, '', '?page=2')View examples
Replace the current entryhistory.replaceState({ page: 1 }, '', '?page=1')View examples
Restore traversed stateaddEventListener('popstate', event => render(event.state))View examples
Intercept supported navigationevent.intercept({ handler: () => render(new URL(event.destination.url)) })View examples
Navigate with the new APIawait navigation.navigate('/account').finishedView examples

DOM and Lifecycle · 18 commands

Mutation, Intersection, and Resize Observers Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Create a mutation observerconst observer = new MutationObserver(records => process(records))View examples
Observe selected mutationsobserver.observe(root, { childList: true, subtree: true })View examples
Filter attributesobserver.observe(node, { attributes: true, attributeFilter: ['aria-expanded'] })View examples
Request old valuesobserver.observe(node, { attributes: true, attributeOldValue: true })View examples
Drain pending recordsconst pending = observer.takeRecords()View examples
Create an intersection observerconst observer = new IntersectionObserver(onIntersect, { threshold: [0, 0.5, 1] })View examples
Expand the root boundarynew IntersectionObserver(callback, { rootMargin: '0px 0px 300px' })View examples
Observe an intersection targetobserver.observe(document.querySelector('[data-lazy]'))View examples
Check visible intersectionif (entry.isIntersecting) reveal(entry.target)View examples
Stop tracking one targetobserver.unobserve(entry.target)View examples
Drain intersection entriesconst pending = observer.takeRecords()View examples
Create a resize observerconst observer = new ResizeObserver(entries => update(entries))View examples
Observe the border boxobserver.observe(panel, { box: 'border-box' })View examples
Read logical box sizeconst { inlineSize, blockSize } = entry.contentBoxSize[0]View examples
Read the legacy fallbackconst width = entry.contentRect.widthView examples
Stop observing one elementobserver.unobserve(panel)View examples
Disconnect an observerobserver.disconnect()View examples
Feature-detect supportif ('ResizeObserver' in globalThis) startResizeTracking()View examples

DOM and Lifecycle · 15 commands

Performance Timing and Observers Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Detect observable typesconst types = PerformanceObserver.supportedEntryTypesView examples
Observe buffered entriesobserver.observe({ type: 'largest-contentful-paint', buffered: true })View examples
Drain queued recordsconst pending = observer.takeRecords()View examples
Stop observationobserver.disconnect()View examples
Read navigation timingconst [nav] = performance.getEntriesByType('navigation')View examples
Compute response waitconst ttfb = nav.responseStart - nav.requestStartView examples
Read resource timingsconst resources = performance.getEntriesByType('resource')View examples
Expose cross-origin detailTiming-Allow-Origin: https://app.exampleView examples
Clear the resource bufferperformance.clearResourceTimings()View examples
Mark a workflow pointperformance.mark('checkout:start')View examples
Measure between marksperformance.measure('checkout', 'checkout:start', 'checkout:end')View examples
Clear application marksperformance.clearMarks('checkout:start')View examples
Read first contentful paintperformance.getEntriesByName('first-contentful-paint', 'paint')[0]View examples
Observe long interactionsobserver.observe({ type: 'event', buffered: true, durationThreshold: 40 })View examples
Bound telemetry payloadsnavigator.sendBeacon('/rum', new Blob([payload], { type: 'application/json' }))View examples

DOM and Lifecycle · 14 commands

Web Animations API Cheat Sheet

Open full cheat sheet
UseSyntaxExamples
Create an animationconst animation = element.animate(keyframes, { duration: 300, easing: 'ease-out' })View examples
Use property-indexed keyframeselement.animate({ opacity: [0, 1], transform: ['scale(.95)', 'scale(1)'] }, 200)View examples
Set keyframe offsets[{ opacity: 0, offset: 0 }, { opacity: 1, offset: 0.4 }, { opacity: 1, offset: 1 }]View examples
Pause playbackanimation.pause()View examples
Reverse safelyanimation.reverse()View examples
Change playback rateanimation.updatePlaybackRate(0.5)View examples
Seek to a timeanimation.currentTime = 150View examples
Await completionawait animation.finishedView examples
Await pending operationsawait animation.readyView examples
Commit computed valuesanimation.commitStyles(); animation.cancel()View examples
Inspect element animationsconst animations = element.getAnimations({ subtree: true })View examples
Read computed timingconst timing = animation.effect.getComputedTiming()View examples
Change effect timinganimation.effect.updateTiming({ duration: 500, iterations: 2 })View examples
Detect reduced motionconst reduce = matchMedia('(prefers-reduced-motion: reduce)').matchesView examples
CMDMEMO TERMINALREAD ONLY