DOM Manipulation
We can split up DOM Manipulation into 3 main categories and 2 supplementary categories:
Selecting Elements
- getElementById() – select an element by id.
 - getElementsByName() – select elements by name.
 - getElementsByTagName() – select elements by a tag name.
 - getElementsByClassName() – select elements by one or more class names.
 - querySelector() – select elements by CSS selectors.
 
Traversing Elements
- Get the parent element – get the parent node of an element.
 - Get child elements – get children of an element.
 - Get siblings of an element – get siblings of an element.
 
Manipulating elements
- createElement() – create a new element.
 - appendChild() – append a node to a list of child nodes of a specified parent node.
 - textContent – get and set the text content of a node.
 - innerHTML – get and set the HTML content of an element.
 - innerHTML vs. createElement – explain the differences between innerHTML and createElement when it comes to creating new elements.
 - DocumentFragment – learn how to compose DOM nodes and insert them into the active DOM tree.
 - insertBefore() – insert a new node before an existing node as a child node of a specified parent node.
 - insertAfter() helper function – insert a new node after an existing node as a child node of a specified parent node.
 - append() – insert a node after the last child node of a parent node.
 - prepend() – insert a node before the first child node of a parent node.
 - insertAdjacentHTML() – parse a text as HTML and insert the resulting nodes into the document at a specified position.
 - replaceChild() – replace a child element by a new element.
 - cloneNode() – clone an element and all of its descendants.
 - removeChild() – remove child elements of a node.
 
Working with Attributes
- setAttribute() – set the value of a specified attribute on a element.
 - getAttribute() – get the value of an attribute on an element.
 - removeAttribute() – remove an attribute from a specified element.
 - hasAttribute() – check if an element has a specified attribute or not.
 
Manipulating Element’s Styles
- style property – get or set inline styles of an element.
 - getComputedStyle() – return the computed style of an element.
 - className property – return a list of space-separated CSS classes.
 - classList property – manipulate CSS classes of an element.
 - Element’s width & height – get the width and height of an element.