const element = document.getElementById('myDiv'); // Element for all examples
// Select Elements (RETURNS ELEMENT/NODELIST)
document.getElementById('myId'); // Single element by ID
document.getElementsByClassName('myClass'); // HTMLCollection by class
document.getElementsByTagName('div'); // HTMLCollection by tag
document.querySelector('.myClass'); // First element by CSS selector
document.querySelectorAll('.myClass'); // NodeList by CSS selector
// Create Elements (RETURNS ELEMENT)
document.createElement('div'); //
document.createTextNode('Hello'); // Text node
document.createDocumentFragment(); // Document fragment
element.cloneNode(true); // Deep clone with children
element.cloneNode(false); // Shallow clone without children
// Add/Remove Elements (MUTATES DOM)
parent.appendChild(child); // Add child to end - MUTATES
parent.insertBefore(newChild, refChild); // Insert before reference - MUTATES
parent.removeChild(child); // Remove child - MUTATES
element.remove(); // Remove self - MUTATES
parent.replaceChild(newChild, oldChild); // Replace child - MUTATES
// Modern Add/Remove (MUTATES DOM)
element.append(child1, child2, 'text'); // Add multiple children/text - MUTATES
element.prepend(child1, child2); // Add to beginning - MUTATES
element.before(newElement); // Insert before element - MUTATES
element.after(newElement); // Insert after element - MUTATES
element.replaceWith(newElement); // Replace element - MUTATES
// Content (GETS/SETS)
element.innerHTML; // "Hello
"
element.innerHTML = 'New'; // Set HTML content - MUTATES
element.textContent; // "Hello World"
element.textContent = 'New text'; // Set text content - MUTATES
element.innerText; // "Hello World" (visible text)
element.outerHTML; // "Hello
"
// Attributes (GETS/SETS)
element.getAttribute('id'); // "myId"
element.setAttribute('id', 'newId'); // Set attribute - MUTATES
element.removeAttribute('class'); // Remove attribute - MUTATES
element.hasAttribute('data-value'); // true/false
element.id; // "myId" (direct property)
element.id = 'newId'; // Set ID - MUTATES
element.className; // "class1 class2"
element.className = 'newClass'; // Set class - MUTATES
// Classes (MUTATES DOM)
element.classList.add('newClass'); // Add class - MUTATES
element.classList.remove('oldClass'); // Remove class - MUTATES
element.classList.toggle('active'); // Toggle class - MUTATES
element.classList.contains('myClass'); // true/false
element.classList.replace('old', 'new'); // Replace class - MUTATES
// Styles (GETS/SETS)
element.style.color = 'red'; // Set inline style - MUTATES
element.style.backgroundColor = 'blue'; // Set background - MUTATES
element.style.cssText = 'color: red;'; // Set multiple styles - MUTATES
getComputedStyle(element).color; // "rgb(255, 0, 0)" (computed style)
element.style.removeProperty('color'); // Remove style property - MUTATES
// Data Attributes (GETS/SETS)
element.dataset.userId; // Get data-user-id
element.dataset.userId = '123'; // Set data-user-id - MUTATES
element.getAttribute('data-user-id'); // "123"
element.setAttribute('data-value', 'test'); // Set data attribute - MUTATES
// Navigation (RETURNS ELEMENT/NULL)
element.parentNode; // Parent element
element.parentElement; // Parent element (null if parent is document)
element.children; // HTMLCollection of child elements
element.childNodes; // NodeList of all child nodes
element.firstElementChild; // First child element
element.lastElementChild; // Last child element
element.nextElementSibling; // Next sibling element
element.previousElementSibling; // Previous sibling element
// Events (MUTATES DOM)
element.addEventListener('click', handler); // Add event listener - MUTATES
element.removeEventListener('click', handler); // Remove event listener - MUTATES
element.onclick = handler; // Set event handler - MUTATES
element.click(); // Trigger click event - MUTATES
element.focus(); // Focus element - MUTATES
element.blur(); // Blur element - MUTATES
// Form Elements (GETS/SETS)
input.value; // Input value
input.value = 'new value'; // Set input value - MUTATES
input.checked; // true/false (checkboxes/radios)
input.checked = true; // Set checked - MUTATES
input.disabled = true; // Disable input - MUTATES
select.selectedIndex; // Selected option index
form.submit(); // Submit form - MUTATES
form.reset(); // Reset form - MUTATES
// Position/Size (RETURNS NUMBER)
element.offsetWidth; // 200 (width including padding/border)
element.offsetHeight; // 100 (height including padding/border)
element.clientWidth; // 180 (width excluding border)
element.clientHeight; // 80 (height excluding border)
element.scrollWidth; // 250 (full scrollable width)
element.scrollHeight; // 150 (full scrollable height)
element.offsetLeft; // 10 (left position)
element.offsetTop; // 20 (top position)
// Scroll (GETS/SETS)
element.scrollTop; // 50 (vertical scroll position)
element.scrollLeft; // 0 (horizontal scroll position)
element.scrollTop = 100; // Set scroll position - MUTATES
element.scrollIntoView(); // Scroll element into view - MUTATES
window.scrollTo(0, 100); // Scroll page - MUTATES
// Document Methods (VARIOUS RETURNS)
document.title; // "Page Title"
document.title = 'New Title'; // Set page title - MUTATES
document.body; // element
document.head; // element
document.documentElement; // element
document.activeElement; // Currently focused element
document.hasFocus(); // true/false (document has focus)