Walking the DOM
輕而易舉用原生 code manipulate element nodes
Create/Remove element
document.createElement(tag)
To create DOM nodes
document.createElement('div.remove()');
elem.remove()
remove a node
elem.cloneNode(true)
elem.cloneNode(true)
creates a “deep” clone of the element – with all attributes and subelements. If we call elem.cloneNode(false)
, then the clone is made without child elements.
let div2 =
div.cloneNode(true)
;
Select element
returns the first element for the given CSS selector.
document.querySelector('#ele')
document.getElementById
document.getElementById('ele')
returns all elements inside elem
matching the given CSS selector.
document.querySelectorAll('ul > li:last-child');
document.getElementsBy*
looks for elements with the given tag and returns the collection of them
document.getElementsByTagName('input')[0].value = 5;
Insertion methods
node.append(...nodes or strings)
append nodes or strings at the end of node
node.prepend(...nodes or strings)
insert nodes or strings at the beginning of node
node.before(...nodes or strings)
insert nodes or strings before node
node.after(...nodes or strings)
insert nodes or strings after node
node.replaceWith(...nodes or strings)
replaces node
with the given nodes or strings
Method
elem.matches
Previous methods were searching the DOM.
document.body.children.matches('a[href$="zip"]'
looks for the nearest ancestor that matches the CSS-selector.
document.querySelector('.chapter').closest('.contents')); // DIV
Change Some content
elem.innerHTML
allows to get the HTML inside the element as a string.
let name = '<b>A</b>';elem.innerHTML = name;
// A
elem.textContent
return pure text inside the element
elem.textContent = name; // <b>A</b>
Styles and classes
elem.className
replaces the whole string of classes
elem.classList
add/remove a single class
elem.classList.add('red')
remove('red')
toggle('red')
contains("class")
elem.style.{style}
an object that corresponds to what’s written in the "style"
elem.style.margin = '20px'
'
Select element
Insert element
Change Some content
Styles and classes
Attribute
HTML attributes have the following features:
Their name is case-insensitive (
id
is same asID
).Their values are always strings, but properties are not always strings. For instance, the
input.checked
property (for checkboxes) is a boolean:
elem.hasAttribute(name)
– checks for existence.elem.getAttribute(name)
– gets the value.elem.setAttribute(name, value)
– sets the value.elem.removeAttribute(name)
– removes the attributeele.attributes
- a collection of objects that belong to a built-in Attr class, withname
andvalue
properties.
dataset
All attributes starting with “data-” are reserved for programmers’ use. They are available in the dataset
property.
Last updated