DOM
Манипуляции с элементами

Что такое DOM?

DOM (Document Object Model) - объектная модель, используемая для XML/HTML-документов.
DOM (Document Object Model) - объектная модель, используемая для XML/HTML-документов.
DOM - это представление документа в виде дерева тегов. Это дерево образуется за счет вложенной структуры тегов плюс текстовые фрагменты страницы, каждый из которых образует отдельный узел.

Выбор элементов на странице
<div class=“content” id=“news” name=“worldNews”></div>
1. по ID
var divNews = document.getElementById(“news”);
2. по значению атрибута name
var divNews = document.getElementsByName(“worldNews”);
3. по типу
var divs = document.getElementsByTagName(“div”);
4. Выбор элементов по классу CSS
var contents = document. .getElementsByClassName(“content”)
5. Выбор по css селектору
var divs = document. querySelectorAll(“div”)
var div = document. querySelector(“div”)
Перебор узлов
(перемещение по узлам дерева)
.childNodes (возвращает live-коллекцию дочерних элементов данного элемента)
.firstChild/ lastChild (возвращает первого/последнего потомка узла в древе или null, если узел является бездетным)
.children(возвращает живую коллекцию (HTMLCollection) дочерних элементов узла)

.parentElement(родительский элемент текущего узла. Это всегда объект DOM Element, или null)
.previousElementSibling/ .nextElementSibling (возвращает узел непосредственно предшедстующий /слудающий за указанному в родительском списке childNodes, или null )
.firstElementChild/ .lastElementChild (возвращает первый/последний дочерний элемент или null)
Манипуляции с содержимым элементов
.nodeType (возвращает беззнаковое короткое целочисленное значение, представляющее тип узла)
.nodeName(возвращает имя текущего узла в виде строки)
.tagName(Возвращает HTML-тег элемента ("div", "p", "a" и т.д))
.innerHTML(устанавливает или получает всю разметку и содержание внутри данного элемента)
.outerHTML(возвращает полный HTML элемента)

Работа с атрибутами
.hasAttribute(attrName) - метод возвращает Boolean значение указывающее, имеет ли указанный элемент указанный атрибут или нет
.getAttribute(attrName) - возвращает значение именованного атрибута выбранного элемента

.setAttribute(name, value) - Добавляет новый атрибут или изменяет значение существующего атрибута у выбранного элемента
.removeAttribute(attrName) - Удаляет атрибут у выбранного элемента
.dataset - позволяет из javascript получить доступ к атрибутам data-*, установленным для html-элемента.
Работа с классами
- className - Свойство отвечает за значение атрибута class элемента.
- classList - Свойство classList возвращает псевдомассив, содержащий все классы элемента.
Методы classList
.contains(string) - Проверяет, есть ли данный класс у элемента (вернет true или false)
.add(string) - Добавляет элементу указанные классы
.remove(string) - Удаляет у элемента указанные классы
.toggle ( String [, Boolean]) - Если класс у элемента отсутствует - добавляет, иначе - убирает. Когда вторым параметром передано false - удаляет указанный класс, а если true - добавляет.

Создание/ добавление/ удаление узлов
- createElement(tag)
- createTextNode(text)
-
cloneNode(true)/cloneNode(false) - appendChild(elem)
- insertBefore(elem, nextSibling)
- removeChild(elem)
- replaceChild(elem, currentElem)

Работа со стилями
- element.style - возвращает объект который описывает стили элемента
- getComputedStyle(element) - возвращает объект, с помощью методов которого можно получить значения интересующих нас свойств

Размеры и расположение элементов
-
offsetLeft/ offsetTop - отступ слева/сверху относительно родительского элемента.
- offsetWidth/ offsetHeight - высота/ширина элемента с учетом полей и границ в пикселях. Свойство неизменяемое, только для чтения. Возвращаемое значение - целочисленное

-
clientLeft/ client Top - Содержит ширину левой/верхней рамки элемента.
-
scrollWidth/ scrollHeight - ширина/высота элемента c учетом полосы прокрутки.
-
scrollLeft/ scrollTop - получает или устанавливает количество пикселей, на которое контент элемента прокручен влево/вверх
Координаты
-
elem.getBoundingClientRect() - возвращает координаты элемента
-
document.elementFromPoint(x,y) - Возвращает элемент, который находится на координатах (x, y) относительно окна
-
pageX/pageY - Координаты курсора относительно документа
-
clientX/clientY - координаты курсора относительно текущего окна
!Kоординаты pageX/pageY не меняются при прокрутке, в отличие от clientX/clientY.

DOM
By Anna Protasevich
DOM
манипуляции с DOM
- 518