Summary of “JavaScript in the browser”. Part 1

Searching for elements on the page:

// Searching for an element by tag
var list = document.querySelector('ul');

// Searching for the last element from the list
var lastProduct = document.querySelector('li:last-child');

// Searching for an element by class
var price = document.querySelector('.price');

// Searching for the third element from the product list
var thirdProduct = document.querySelector('.product:nth-child(3)');

// Searching for all elements that match the selector
var listItems = document.querySelectorAll('.product');

querySelectorAll returns a list (collection) of elements. This list is similar to an array, but it is not. It’s called a pseudo-array, and you can go through it using a loop.

Add a class to a page element:

// When searching for an element by class, use dot
var product = document.querySelector('.product');

// But when we add a class, there is no dot!
product.classList.add('product--sale');
The result of classList.add() is the same as when we manually add a class to the layout:
<!-- Initial markup state -->
<li class="product">
  …
</li>

<!-- State after calling classList.add -->
<li class="product product--sale">
  …
</li>

Continue